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.
Credits:
Special thanks to for adding this problem and creating all test cases.
public class Solution {
public void rotate(int[] nums, int k) {
if(nums ==null) return;
int n = nums.length;
if(n<=1) return;
k = k%n;
int m = n-k;
int[] aux = new int[k];
System.arraycopy(nums, m, aux, 0, k);
System.arraycopy(nums, 0, nums, k , m);
System.arraycopy(aux, 0, nums, 0, k);
}
}