1.重新开辟个数组移动到这个数组里面
2.移动位置 从最后一个开始循环 转个圈圈
3.一小块一小块移动
public void rotate(int[] nums, int k) {
int n=nums.length;
if(k>=n)k=k%n;
if(n<=1||k<=0)
return;
k=n-k;
int i=0;
int j=k;
while(true){
int temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
i++;
j++;
if(i==k){
if(j>=n)
break;
else
k=j;
}else if(j>=n)
j=k;
}
}
1 2 3 4 5 6 7-》6 7 1 2 3 4 5
6 7 3 4 5 1 2
6 7 1 2 5 3 4
6 7 1 2 3 5 4
4.两边都反转,最后整体反转