【力扣hot100题】(014)轮转数组

【力扣hot100题】(014)轮转数组_第1张图片

感谢力扣,好久没遇到过这么简单的题目了,并且比较考验基础(vector的各种删除拼接操作)。

先储存起后k个元素,然后从第nums.size()-k处一一后移,最后将储存元素替换原来的前k个元素即可。

class Solution {
public:
    void rotate(vector& nums, int k) {
        k=k%nums.size();
        vector 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());
    }
};

你可能感兴趣的:(leetcode,算法,数据结构)