我们采用数组翻转例如:1,2,3,4,5 k=2,结果应为4,5,1,2,3
首先全部翻转得到5,4,3,2,1
然后在翻转数组第一位到底k位得:4,5,3,2,1
最后翻转数组第k位到最后一位得:4,5,1,2,3
class Solution {
public void rotate(int[] nums, int k) {
k%=nums.length;//可能k大于数组的大小
replace(nums,0,nums.length-1);
replace(nums,0,k-1);
replace(nums,k,nums.length-1);
}
public void replace(int[] nums,int left,int right){
while(right>left){
int temp;
temp=nums[left];
nums[left]=nums[right];
nums[right]=temp;
left+=1;
right-=1;
}
}
}