news 2026/4/30 0:22:11

【Hot 100 刷题计划】 LeetCode 189. 轮转数组 | C++ 三次反转经典魔法 (O(1) 空间)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Hot 100 刷题计划】 LeetCode 189. 轮转数组 | C++ 三次反转经典魔法 (O(1) 空间)

LeetCode 189. 轮转数组

📌 题目描述

题目级别:中等

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

进阶要求:
尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。
你可以使用空间复杂度为O(1)原地算法解决这个问题吗?

  • 示例 1:
    输入:nums = [1,2,3,4,5,6,7], k = 3
    输出:[5,6,7,1,2,3,4]

💡 破题思路:三次反转 (数组魔术)

最容易想到的办法是开辟一个新数组,把后面的元素搬到前面,前面的搬到后面。但这会消耗 O(N) 的额外空间。
要想实现 O(1) 空间复杂度的“原地”轮转,最经典的解法就是**“三次反转法”**。

这就像是一个精妙的数学魔术。以nums = [1,2,3,4,5,6,7],k = 3为例,我们需要把最后 3 个元素搬到最前面。
按照本解法的独家顺序:

  1. 反转前半段:把前n-k个元素反转。[1,2,3,4]变成了[4,3,2,1]
    此时数组:[4,3,2,1, 5,6,7]
  2. 反转后半段:把最后k个元素反转。[5,6,7]变成了[7,6,5]
    此时数组:[4,3,2,1, 7,6,5]
  3. 整体反转:把整个数组头尾对调!前面的去了后面,后面的来了前面,而且之前内部被打乱的顺序,在这一次整体反转中负负得正,完美还原
    最终数组:[5,6,7, 1,2,3,4]

⚠️ 极客避坑点
如果k的值比数组长度n还要大,比如数组长度为 7,让你轮转 10 次,其实就等价于轮转了10 % 7 = 3次。所以第一步必须进行取模运算k = k % n


💻 C++ 代码实现

classSolution{public:voidrotate(vector<int>&nums,intk){intn=nums.size();// 核心细节:剥除多余的整圈轮转k=k%n;// 第一步:反转前半部分 (前 n-k 个元素)reverse(nums.begin(),nums.end()-k);// 第二步:反转后半部分 (后 k 个元素)reverse(nums.end()-k,nums.end());// 第三步:整体反转,首尾对调完成最终轮转reverse(nums.begin(),nums.end());}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 0:16:08

TVA在新能源汽车制造与检测中的实践与创新(7)

重磅预告&#xff1a;本专栏将独家连载新书《AI视觉技术&#xff1a;从入门到进阶》精华内容。本书是《AI视觉技术&#xff1a;从进阶到专家》的权威前导篇&#xff0c;特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan师从美国三院院士、“AI教母”…

作者头像 李华
网站建设 2026/4/30 0:14:35

QML自适应避坑指南:为什么我的Layout布局总出问题?

QML自适应避坑指南&#xff1a;为什么我的Layout布局总出问题&#xff1f; 第一次在团队项目里用QML的RowLayout时&#xff0c;我盯着屏幕上重叠错位的按钮整整半小时——明明在设计师的4K屏上完美对齐&#xff0c;到了测试机的1080p屏幕上却像打翻的积木。这种经历恐怕每个QML…

作者头像 李华
网站建设 2026/4/30 0:12:03

如何快速掌握极域电子教室防控制:JiYuTrainer完整使用教程与技巧

如何快速掌握极域电子教室防控制&#xff1a;JiYuTrainer完整使用教程与技巧 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你是否曾在机房上课时感到束手束脚&#xff1f;当老师…

作者头像 李华
网站建设 2026/4/30 0:02:35

《商业秘密资产成熟度认证白皮书》深度解读(一):从“隐形资产”到“可量化标尺”——三维生态模型如何重塑企业核心竞争力

《商业秘密资产成熟度认证白皮书》深度解读&#xff08;一&#xff09;&#xff1a;从“隐形资产”到“可量化标尺”——三维生态模型如何重塑企业核心竞争力关键词&#xff1a;商业秘密资产、成熟度认证、三维生态模型、秘密性价值性保密性、L1-L5等级在知识产权体系中&#x…

作者头像 李华