给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
class Solution {
public void rotate(int[] nums, int k) {
int n=nums.length;
k=k%n;//注意取余
reverse(nums,0,n-1);
reverse(nums,0,k-1);
reverse(nums,k,n-1);
}
void reverse(int[] nums,int start,int end){
while(start<end){
int tmp=nums[end];
nums[end--]=nums[start];//end--
nums[start]=tmp;
start++;
}
}
}