概述
题目
给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
提示:
1 <= nums.length <= 10^5
-2^31 <= nums[i] <= 2^31 - 1
0 <= k <= 10^5
思路
类似于字符串反转的题目
步骤:
- 将反转数k对数组长度len取余,避免一些重复旋转
- 将最后k个数之前的先反转一次
- 将最后k个数反转一次
- 将数组反转一次
代码
class Solution {
public:
void rotate(vector<int>& nums, int k) {
int len = nums.size();
k%=len;
reverse(nums.begin(), nums.begin()+len-k);
reverse(nums.begin()+len-k, nums.end());
reverse(nums.begin(), nums.end());
}
};
最后
以上就是清秀乐曲为你收集整理的LC189. 轮转数组的全部内容,希望文章能够帮你解决LC189. 轮转数组所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复