思路:
nums整体反转,然后前k个反转,剩余的反转
例如
1 2 3 4 5 6 7
7 6 5 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();
if(!n || n == 1) return;
k %= n;
reverse(nums.begin(),nums.end());
reverse(nums.begin(),nums.begin() + k);
reverse(nums.begin() + k,nums.end());
}
};
评论区