当前位置: 首页 > news >正文

LeetCode287. 寻找重复数

链接:https://leetcode.cn/problems/find-the-duplicate-number/description/?envType=study-plan-v2&envId=top-100-liked

思路

将数组 nums 映射为链表,nums[i] 表示 i 节点指向 nums[i] 节点,由于 nums[i] 的取值范围为 [1,n],所以整个数组形成的链表必然存在环,这时可以使用快慢指针检测环并找到环的入口。

具体步骤

  1. 使用快慢指针,当第一次相遇时,令慢指针从头开始移动,快指针照常移动。
  2. 当快慢指针再次相遇,此时的节点就是环的入口,即其索引就是重复的数。

证明

如图所示,假设 :

  • a:起点到环入口的距离
  • b:环入口到第一次相遇的距离
  • c:环的长度
  • m:第一次相遇时快指针在环里转的圈数
    image

那么第一次相遇时有:

\[\begin{align*} s_{1} &= a + b \quad \text{(慢指针走的步数)} \\ s_{2} &= 2s = a + b + cm \quad \text{(快指针走的步数)} \end{align*} \]

联立可得

\[a = cm - b = c(m-1) + (c - b) \]

所以当第二次相遇时,快慢指针都恰好走到环的入口。

复杂度分析

时间复杂度

\(O(n)\)

  • 第一阶段:快慢指针寻找相遇点,最坏情况需要遍历 \(O(n)\) 步。
  • 第二阶段:重置指针后寻找环入口,最坏情况需要 \(O(n)\) 步。
  • 总时间\(O(n) + O(n) = O(n)\)

空间复杂度

\(O(1)\)
只使用了 slowfast 两个整型变量,没有使用额外数据结构。

代码

class Solution {
public:int findDuplicate(vector<int>& nums) {int n = nums.size();int slow = 0, fast = 0;do {slow = nums[slow];fast = nums[nums[fast]];} while (slow != fast);slow = 0;while (slow != fast) {slow = nums[slow];fast = nums[fast];}return slow;}
};
http://www.jsqmd.com/news/417659/

相关文章:

  • 战场上的“数字先锋”—猎翼无人机,2026军用高精度侦察无人机蜂群系统供应商推荐 - 品牌2025
  • 2026年2月聚丙烯酰胺聚合氯化铝厂家推荐,一站式水处理药剂供应 - 品牌鉴赏师
  • 2026年北京发电机租赁公司最新推荐:北京周边发电机出租、大型发电机出租、静音发电机出租、柴油发电机出租、ups应急电源出租、电源车出租、聚焦企业服务品质与设备竞争力深度剖析 - 海棠依旧大
  • 一天学会rust之熟悉开发工具并运行第一个程序
  • 2026年全屋定制板材一线品牌有哪些?十大知名品牌权威口碑推荐 - 十大品牌榜
  • 2026年宠物医院推荐:宠物影像诊断/骨科/心脏科/疫苗体检专业机构精选 - 品牌推荐官
  • 2026年企业加密软件评测服务商推荐榜单:数据防泄露系统机构好用的前5款 - 睿易优选
  • 收藏 | Agent是什么?小白程序员必学的大模型新概念!
  • 蒙油加油站加盟条件? - 中媒介
  • PG数据库如何通过dblink实现跨库访问
  • 看完就会:8个AI论文写作软件测评对比,本科生毕业论文写作全攻略
  • 2026年成都谈判离婚与财产分割律师推荐:协议离婚/涉外离婚/离婚纠纷专业选型指南 - 品牌推荐官
  • 阿里企业邮箱授权电话2026年更新,官方客服快速对接通道 - 品牌2025
  • 2026军用高效协同侦察无人机蜂群系统供应商推荐,猎翼无人机的高效侦察解决方案 - 品牌2025
  • 内蒙古加油站品牌有哪些? - 中媒介
  • 交稿前一晚!10个降AIGC平台测评:继续教育必备的AI降重工具推荐
  • 2026户外庭院遮阳伞品牌TOP10推荐:从遮阳伞到户外家具,一站式打造理想户外空间 - 深度智识库
  • PG数据库如何检查膨胀的表和索引
  • 计算机毕业设计之基于SSM的民宿管理系统
  • 代驾APP开发需要哪些功能?同城代驾系统源码给你标准答案
  • 2026年福州视频服务推荐榜单:短视频拍摄/视频代运营/企业宣传片,专业团队助力高效获客与品牌传播 - 品牌企业推荐师(官方)
  • 导师严选! 降AI率网站 千笔AI VS WPS AI,专科生专属神器!
  • 2026年阿里企业邮箱开通电话是多少?快速联系官方客服指南 - 品牌2025
  • 【技巧】:下载安装包的依赖包
  • 救命神器!AI论文平台 千笔ai写作 VS 文途AI,专为本科生打造!
  • 蕲春艾草合作企业 - 中媒介
  • Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
  • 2026年最新企业微信怎么开通?企业注册与认证完整指南 - 品牌2025
  • 神蕲艾谷基地升级 - 中媒介
  • 2026年 AI智搜GEO推广优化排名服务商推荐榜单:福州/莆田/三明地区专业AI搜索与GEO营销解决方案深度解析 - 品牌企业推荐师(官方)