程式語言 - LeetCode - C++ - 189. Rotate Array



參考資訊:
https://www.cnblogs.com/grandyang/p/4298711.html

題目:


方法:

原始
[1 2 3 4 5 6 7]

全部反轉
[7 6 5 4 3 2 1]

前k=3反轉
[5 6 7 4 3 2 1]

後半反轉
[5 6 7 1 2 3 4]

解答:

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int n = nums.size();

        k %= n;
        reverse(nums.begin(), nums.end());
        reverse(nums.begin(), nums.begin() + k);
        reverse(nums.begin() + k, nums.end());
    }
};