news 2026/7/1 20:05:15

LeetCode热题100--287. 寻找重复数--中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode热题100--287. 寻找重复数--中等

题目

给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。

假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。

你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。

示例 1:
输入:nums = [1,3,4,2,2]
输出:2

示例 2:
输入:nums = [3,1,3,4,2]
输出:3

示例 3 :
输入:nums = [3,3,3,3,3]
输出:3

题解

classSolution{publicintfindDuplicate(int[]nums){intslow=0;intfast=0;slow=nums[slow];fast=nums[nums[fast]];while(slow!=fast){slow=nums[slow];fast=nums[nums[fast]];}intpre1=0;intpre2=slow;while(pre1!=pre2){pre1=nums[pre1];pre2=nums[pre2];}returnpre1;}}

解析

出自:287.寻找重复数

classSolution{publicintfindDuplicate(int[]nums){// 初始化快慢指针,都从索引 0 开始// 注意:这里不是从 nums[0] 开始赋值,而是先设为 0(下标)intslow=0;intfast=0;// 先走一步,避免 while 循环一开始 slow == fast 跳过// 慢指针走一步:slow = nums[slow]slow=nums[slow];// 快指针走两步:fast = nums[nums[fast]]fast=nums[nums[fast]];// 第一阶段:使用 Floyd 判圈算法,找到环中的相遇点// 条件:只要 slow 和 fast 没相遇,就继续移动while(slow!=fast){slow=nums[slow];// 慢指针每次走 1 步fast=nums[nums[fast]];// 快指针每次走 2 步}// 第二阶段:找环的入口(即重复的数字)// pre1 从数组起点(下标 0)出发intpre1=0;// pre2 从第一阶段的相遇点出发intpre2=slow;// 当两个指针未相遇时,各自每次走 1 步while(pre1!=pre2){pre1=nums[pre1];// pre1 向前走一步pre2=nums[pre2];// pre2 向前走一步}// 相遇点即为环的入口,也就是重复的数字// 返回任意一个指针的值(pre1 或 pre2)returnpre1;}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 6:34:34

CANN Runtime:AI 处理器的运行核心与计算编排中枢

CANN 组织链接: https://atomgit.com/cann runtime 仓库链接: https://atomgit.com/cann/runtime 在异构计算架构中,硬件的强大性能需要高效的软件来激活和管理。对于 AI 处理器而言,CANN Runtime 正是扮演着这一关键角色。作为 C…

作者头像 李华
网站建设 2026/6/15 17:50:47

实操教程:c盘分区小了怎么扩大?分享3种分区扩容方法

看着任务栏里那个刺眼的C盘红色警告条,系统频繁弹出的“磁盘空间不足”提示,这不仅会影响电脑的运行速度,甚至可能导致软件无法安装或系统崩溃。c盘分区小了怎么扩大?针对这个问题,本文会分享多种适合不同水平用户的解…

作者头像 李华
网站建设 2026/7/1 20:05:01

从零开始构建多智能体系统:7种核心架构模式详解,建议收藏!

“单体智能体”(指只靠一个大语言模型,再塞一堆系统提示词)的路子走不长远。 我们很快就意识到,要搭建高效的系统,得用多个 “专精型智能体”。它们要能协作,还能自主组织。 为实现这一点,AI …

作者头像 李华
网站建设 2026/6/30 6:22:30

AI驱动人才管理系统的分布式架构设计:架构师的考虑

AI驱动人才管理系统的分布式架构设计:架构师的考虑 1. 引入与连接 1.1 引人入胜的开场 想象一下,在一个大型跨国企业中,每天都有成千上万份简历涌入,人力资源部门需要从这些海量信息中筛选出符合岗位要求的潜在人才。传统的人才管理方式犹如在茫茫大海中捞针,效率低下且…

作者头像 李华
网站建设 2026/7/1 12:42:49

3个问题帮你找到心仪的AI工作(收藏+学习)|我两周拿offer的经验

本文分享作者AI求职经验,指出找工作的核心是匹配岗位,而非盲目刷经验。作者建议在写简历前先想清楚3个问题:要找什么类型的AI岗位(纯执行或决策型)、去什么类型的公司(纯AI、传统转型或大厂)、能…

作者头像 李华