
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
class { public void rotate(int[] nums, int k) { int n=nums.length; k %=n; reverse(nums,0,n-1); reverse(nums,0,k-1); reverse(nums,k,n-1); }
private void reverse(int [] nums,int i,int j){ while(i<j){ int temp=nums[i]; nums[i++]=nums[j]; nums[j--]=temp; } } }
|
近期评论