Rotate Array
Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7]
is rotated to [5,6,7,1,2,3,4]
.
Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
public class Solution {
public void rotate(int[] nums, int k) {
int len = nums.length;
if (0 == len || 1 == len || 0 == k) {
return;
}
int move = k % len;
int[] save = new int[move];
for(int i=0;i<move;i++){
save[i]=nums[len-move+i];
}
for(int i=len-1;i>=move;i--){
nums[i]=nums[i-move];
}
for(int i=0;i<move;i++){
nums[i]=save[i];
}
return;
}
}
public class Solution {
public void rotate(int[] nums, int k) {
int len = nums.length;
if (0 == len || 1 == len || 0 == k) {
return;
}
int move = k % len;
int[] save = new int[move];
for(int i=0;i<move;i++){
save[i]=nums[len-move+i];
}
for(int i=len-1;i>=move;i--){
nums[i]=nums[i-move];
}
for(int i=0;i<move;i++){
nums[i]=save[i];
}
return;
}
}