LeetCode hot 100—寻找重复数

embedded/2025/3/28 10:39:55/

题目

给定一个包含 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

分析

我们可以把数组 nums 看作是一个特殊的链表。对于数组中的每个索引 i,将 nums[i] 视为从索引 i 指向的下一个节点的位置。由于数组中存在重复的数字,这就意味着在这个特殊的链表中会形成一个环,而重复的数字就是环的入口节点。

快慢指针法

核心思路是将数组看作一个链表,通过快慢指针来检测链表中是否存在环,进而找到重复的数字。

时间复杂度:O(n), n 是数组的长度

空间复杂度:O(1)

class Solution {
public:int findDuplicate(std::vector<int>& nums) {// 初始化快慢指针int slow = nums[0];int fast = nums[nums[0]];// 快慢指针相遇,检测环的存在while (slow != fast) {slow = nums[slow];fast = nums[nums[fast]];}// 慢指针回到起点slow = 0;// 快慢指针以相同速度前进,再次相遇的位置即为重复数字while (slow != fast) {slow = nums[slow];fast = nums[fast];}return slow;}
}; 

http://www.ppmy.cn/embedded/176486.html

相关文章

Python----计算机视觉处理(Opencv:图像亮度变换)

一、图像亮度变换 亮度调整&#xff1a;图像像素强度整体变高或者变低。 对比度调整&#xff1a;图像暗处像素强度变低&#xff0c;图像亮处像素强度变高&#xff0c;从而拉大中间某个区域范围的显示精 度。 A&#xff1a;原图 …

Vue+SpringBoot:整合JasperReport作PDF报表,并解决中文不显示问题

文章目录 一、前言二、后端代码1、pom依赖2、Jaspersoft Studio生成的jasper文件3、main程序测试案例4、解决中文不显示问题5、web接口案例 三、Vue前端代码四、演示效果 一、前言 以前&#xff0c;在流行jdk1.6的时候&#xff0c;作pdf报表&#xff0c;用的软件是iReport。 …

本地安装deepseek大模型,并使用 python 调用

首先进入 ollama 官网 https://ollama.com/点击下载 下载完成后所有都是下一步&#xff0c;就可以 点击搜索 Models &#xff1a; https://ollama.com/search然后点击下载&#xff1a; 选择后复制: ollama run deepseek-r1:32b例如&#xff1a; 让它安装完成后&#xff1…

数据库基础知识点(系列一)

1&#xff0e;数据库的发展历史分哪几个阶段&#xff1f;各有什么特点&#xff1f; 答&#xff1a;数据库技术经历了人工管理阶段、文件系统阶段和数据库系统三个阶段。 1&#xff09;人工管理阶段 这个时期数据管理的特点是&#xff1a; 数据由计算或处理它的程序自行携带…

盖泽 寻边器 帮助类

EA系列 Aligner晶圆校准器 晶圆校准器是一种应用于晶圆加工中的晶圆预对准装置,通过利用晶圆上的缺口(notch)将晶圆调整至预设位置,以确保晶圆的位置及方向,方便后续工艺的进行。产品广泛应用于半导体制造过程中的各个阶段,可集成至各类半导体设备中使用。 通讯方式 串口 …

阻止 Mac 在运行任务时进入休眠状态

掌握Caffeinate命令&#xff1a;让您的 Mac 保持清醒以完成关键任务 开发人员经常发现自己在 Mac 上运行持续时间较长的进程。无论是大量文件上传、广泛的数据分析脚本&#xff0c;还是复杂的构建过程&#xff0c;我们最不希望的就是我们的机器在任务中途进入睡眠状态。输入 c…

前端实战:基于Vue3与免费满血版DeepSeek实现无限滚动+懒加载+瀑布流模块及优化策略

目录 前端实战&#xff1a;基于Vue3与免费满血版DeepSeek实现无限滚动懒加载瀑布流模块及优化策略 一、前言 二、如何使用腾讯云免费满血版deepseek 1、腾讯云大模型知识引擎体验中心 2、体验deepseek联网助手 3、人机交互获取AI支持 三、基于DeepSeek实现无限滚动懒加载…

(C语言)静态通讯录(测试版)(C语言小项目)

1.首先是头文件&#xff1a; //头文件 //contact.h//防止头文件被重复包含 #pragma once //定义符号常亮&#xff0c;方便维护和修改 //联系人基本信息容量 #define NAME_MAX 20 #define AGE_MAX 5 #define SEX_MAX 5 #define TELE_MAX 15 #define ADDR_MAX 30 //联系人最大容量…