给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
解法
class Solution { public: void rotate(vector<int>& nums, int k) { int rotateSize = nums.size()-(k%nums.size()); reverse(nums,0,rotateSize-1); reverse(nums,rotateSize,nums.size()-1); reverse(nums,0,nums.size()-1); } void reverse(vector<int>& nums,int start,int end){ for(int i=start,j=end;i<j;i++,j--){ int temp=nums[i]; nums[i]=nums[j]; nums[j]=temp; } } };