leetcode.189.轮转数组
第一次全反转,第二次反转前k个,第三次反转后n-k个
需要注意的是向又轮转k个时,如果超出数组长度,要对其进行取模运算才是正确的向右轮转个数
class Solution {
private:
void rotate(vector<int>& nums,int start,int end){
while(start<end)
swap(nums[start++],nums[end--]);
}
public:
void rotate(vector<int>& nums, int k) {
k=k%nums.size();
this->rotate(nums,0,nums.size()-1);
this->rotate(nums,0,k-1);
this->rotate(nums,k,nums.size()-1);
}
};