首页 🍒LeetCode,🐶算法

chrome_pXbnKR2eMl.png

思路

可以采用队列的出入完成,但是不太优雅
可以将数组整个翻转比如,123456翻转变成654321,这样前面的数就到了后面,这时我们再取一个中间线即k % nums.size(),把中间线两边的数组分别进行翻转即可

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        reverse(nums.begin(), nums.end());
        int n = k % nums.size();
        reverse(nums.begin(), nums.begin() + n);
        reverse(nums.begin() + n, nums.end());
    }
};



文章评论