/*
* 思路:前段反转,后段反转,整体反转
*/
public void rotate(int[] nums, int k) {
int len = nums.length;
if(nums==null||len==0||len==1) return;
k = k % len;
reverse(nums,0,len-k-1);
reverse(nums,len-k,len-1);
reverse(nums,0,len-1);
}
public void reverse(int[] nums,int p,int q){
int tmp = 0;
while(p<q){
tmp = nums[p];
nums[p] = nums[q];
nums[q] = tmp;
++p;
--q;
}
}
* 思路:前段反转,后段反转,整体反转
*/
public void rotate(int[] nums, int k) {
int len = nums.length;
if(nums==null||len==0||len==1) return;
k = k % len;
reverse(nums,0,len-k-1);
reverse(nums,len-k,len-1);
reverse(nums,0,len-1);
}
public void reverse(int[] nums,int p,int q){
int tmp = 0;
while(p<q){
tmp = nums[p];
nums[p] = nums[q];
nums[q] = tmp;
++p;
--q;
}
}