Note:
先全部reverse一遍,然后两段在分别reverse一遍,就可得到答案
但是注意一下区间,比如说数组长度为4,但是k = 5
这就相当于轮转了1次,轮转4次之后还是原数组,所以最后就是轮转 k % nums.size() 次
代码如下:
class Solution {
public:
void rotate(vector<int>& nums, int k) {
reverse(nums.begin(), nums.end());
reverse(nums.begin(), nums.begin() + (k % nums.size()) );
reverse(nums.begin() + (k % nums.size()), nums.end());
}
};