方法1:开辟新的空间但是单循环一次性移位
class ution {
public void rotate1(int[] nums, int k) {
int [] mm=new int[nums.length];
for(int i=0;i<nums.length;i++){
if(i<nums.length-k){
mm[i+k]=nums[i];
}
else{
int m=(i+k)%nums.length;
mm[m]=nums[i];
}
}
for(int j=0;j<nums.length;j++){
System.out.print(mm[j]);
}
}
}
方法2:双重循环,一个个移
/**
* 双重循环
* 时间复杂度:O(kn)
* 空间复杂度:O(1)
*/
class ution {
public void rotate1(int[] nums, int k) {
int n=nums.length;
k=k%n;
for(int i=0;i<k;i++){
int temp = nums[n - 1];
for(int j=n-1;j>0;j--){
nums[j]=nums[j-1];
}
nums[0] = temp;
}
for(int j=0;j<n;j++){
System.out.print(nums[j]);
}
}
}