一、题目
![在这里插入图片描述](https://img-blog.csdnimg.cn/22d069cb02b74f288e419122933d1c02.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd2VpeGluXzQ1Nzk0Mjk5,size_13,color_FFFFFF,t_70,g_se,x_16)
二、思路
![在这里插入图片描述](https://img-blog.csdnimg.cn/aa60379d412d4b6fbbc418c4c155bfb4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd2VpeGluXzQ1Nzk0Mjk5,size_17,color_FFFFFF,t_70,g_se,x_16)
三、代码一
class Solution {
public:
void rotate(vector<int>& nums, int k) {
int size=nums.size();
k=k%size;
reverse(nums.begin(),nums.end());
reverse(nums.begin(),nums.begin()+k);
reverse(nums.begin()+k,nums.end());
}
};
四、代码二
class Solution {
public:
void reverse(vector<int>& nums, int start, int end) {
while (start < end) {
swap(nums[start], nums[end]);
start += 1;
end -= 1;
}
}
void rotate(vector<int>& nums, int k) {
k %= nums.size();
reverse(nums, 0, nums.size() - 1);
reverse(nums, 0, k - 1);
reverse(nums, k, nums.size() - 1);
}
};
|