当前位置: 首页> 教育> 锐评 > 面试经典 150 题

面试经典 150 题

时间:2025/7/23 18:11:03来源:https://blog.csdn.net/Tlwhisper/article/details/140216289 浏览次数:0次

文章目录

  • 6、轮转数组

6、轮转数组

1、描述
给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]
2、关键字
数组向后轮转变换
3、思路
先用k对n取模
思路一:使用辅助数组,时间复杂度O(N),空间复杂度O(N)
思路二:发现规律:先把整个数组逆置,之后把前k个元素逆置,之后把后边n- k个元素逆置
4、notes
多练
6、code


class Solution {
public:void reverse(vector<int>& nums, int i, int j) {while(i < j) {int tem = nums[i];nums[i] = nums[j];nums[j] = tem;     i++;j--;}}void rotate(vector<int>& nums, int k) {int n = nums.size();k %= n ;reverse(nums, 0, n - 1); // 整个数组逆置reverse(nums, 0,  k - 1); // 逆置前边的k个,reverse(nums, k, n - 1); // 逆置后边的n - k个}
};
关键字:面试经典 150 题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: