感谢力扣,好久没遇到过这么简单的题目了,并且比较考验基础(vector的各种删除拼接操作)。
先储存起后k个元素,然后从第nums.size()-k处一一后移,最后将储存元素替换原来的前k个元素即可。
class Solution {
public:void rotate(vector<int>& nums, int k) {k=k%nums.size();vector<int> record(nums.end()-k,nums.end());for(int i=nums.size()-1;i>=k;i--){nums[i]=nums[i-k];}nums.erase(nums.begin(),nums.begin()+k);nums.insert(nums.begin(),record.begin(),record.end());}
};