旋转数组

给定一个数组,将数组中的元素向右移动 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;
}
}
}