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); } }