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].
public class Solution {
public void rotate(int[] nums, int k) {
int length = nums.length;
k = k % length;
if(length == 1)
return;
if(k == 0)
return;
//reve(nums, 0, length - k);
reve(nums, 0, length - k - 1);
reve(nums, length -k, length - 1);
reve(nums, 0, length - 1);
}
public static void reve(int[] nums, int i, int j){
int t = 0;
while(i < j && i >= 0){
t= nums[i];
nums[i] = nums[j];
nums[j] = t;
i++;
j--;
}
}
}