1.
public void rotate(int[] nums, int k) {
if(nums.length<=1){
return;
}
int n=nums.length;
int step=k%nums.length;
int[] tmp=new int[step];
for(int i=0;i<step;i++){
tmp[i]=nums[n-step+i];
}
for(int i=nums.length-step-1;i>=0;i--){
nums[i+step]=nums[i];
}
for(int i=0;i<step;i++){
nums[i]=tmp[i];
}
}
2.
public void rotate(int[] nums, int k) {
if(nums.length<=1){
return;
}
int step=k%nums.length;
reverse(nums, 0, nums.length-1);
reverse(nums,0 ,step-1);
reverse(nums, step+1, nums.length-1);
}
public void reverse(int[] nums,int m,int n){
while(m<n){
int temp=nums[m];
nums[m]=nums[n];
nums[n]=temp;
m++;
n--;
}
}
3.