力扣 hot100 Day69

287. 寻找重复数

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

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

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

class Solution {
public:int findDuplicate(vector<int>& nums) {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;}
};

最优方法,将数组视为链表,重复值意味着有多个节点指向同一位置,即有环,问题转换为找环,之前刷过,具体思路如下。

  1. 将数组视为链表​​:将数组中的值视为指向下一个索引的指针。例如,nums[i]表示 i -> nums[i]。因为有重复的数字,所以至少有两个不同的索引会指向同一个位置,形成环。

  2. ​检测环的入口​​:使用快慢指针,快指针每次走两步,慢指针每次走一步,直到两者相遇。然后让一个指针从起点开始,另一个从相遇点开始,每次各走一步,再次相遇的点就是环的入口,即重复的数字

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/92499.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/92499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 的CameraX的使用(配置,预览,拍照,图像分析,录视频)

Android Studio 版本号:2024.1.2 CameraX是Jetpack系列中的一个库,它基于Camera2 API构建,但提供了更高层次的抽象。 CameraX 三大核心用例: Preview预览 ,ImageCapture拍照和 VideoCapture录视频 一、创建项目,进行环境配置 CameraX 需要一些属于 Java 8 的方法,因此…

【机器学习深度学习】微调训练数据质量

目录 前言 一、为什么数据质量评估很重要 二、数据质量评估的核心维度 三、数据质量的可量化维度&#xff08;必须要测的指标&#xff09; 四、多答案、多类型数据的取舍与优化 场景 A&#xff1a;一个问题有多个相似回答 场景 B&#xff1a;多个类型数据&#xff0c;每…

从DeepSeek-V3到Kimi K2,大型语言模型架构对比

文章目录 摘要 **稀疏化与专家系统** **注意力机制优化** **归一化与稳定性设计** 模型架构对比详析 DeepSeek-V3 vs Llama 4 Maverick Qwen3 vs SmolLM3 Kimi 2的突破 1 DeepSeek V3/R1 1.1 多头潜在注意力(MLA) 1.2 混合专家系统(MoE) 1.3 DeepSeek 总结 2 OLMo 2 2.1 归…

Unity笔记(二)——Time、Vector3、位置位移、角度、旋转、缩放、看向

写在前面写本系列的目的(自用)是回顾已经学过的知识、记录新学习的知识或是记录心得理解&#xff0c;方便自己以后快速复习&#xff0c;减少遗忘。这里只有部分语法知识。五、Time时间相关1、时间缩放比例概念&#xff1a;可以通过UnityEngine.Time类的timeScale属性控制游戏时…

vue+vite项目中怎么定义一个环境变量可以在开发环境和生产环境使用不同的值,并且可以在vue页面和index.html通用。

首先我们需要下载一个插件vite-plugin-html然后再项目最外层和index.html同级目录下新建.env.development和.env.production两个项目并且定义你想要的环境变量名:注意要以VITE_开头VITE_APP_MAP_TOKEN1233444然后vite.config.js文件import { defineConfig,loadEnv } from vite…

Python-深度学习--2信息熵,条件熵(ID3决策树),KL散度

一、信息熵&#xff08;Entropy&#xff09;的计算与应用信息熵用于衡量一个概率分布的不确定性&#xff0c;值越大表示分布越分散&#xff08;不确定性越高&#xff09;。1. 数学定义对于离散概率分布 P&#xff0c;信息熵公式为&#xff1a;&#xff08;通常以 2 为底单位是比…

国产化Word处理控件Spire.Doc教程:Python提取Word文档中的文本、图片、表格等

在现代办公场景中&#xff0c;Word文档已成为信息存储与交流的重要载体&#xff0c;承载着关键的业务数据、结构化表格、可视化图表以及协作批注等重要内容。面对日益增长的文档处理需求&#xff0c;传统的人工操作方式已难以满足效率与准确性的双重标准。采用Python实现Word文…

Spring IOC 原理

Spring IoC&#xff08;控制反转&#xff09;是Spring框架的核心机制&#xff0c;其原理是通过容器管理对象生命周期和依赖关系&#xff0c;实现解耦。 1. 控制反转&#xff08;IoC&#xff09;核心思想 传统模式&#xff1a;对象主动创建依赖&#xff08;如new Service()&…

VSCode:基础使用 / 使用积累

官网 Visual Studio Code - Code Editing. Redefined 记录一、更新依赖 尝试删除yarn.lock文件 记录二、“解决冲突”的方式变了 更新后&#xff0c;“解决冲突”的方式变了&#xff0c;有的时候能选中两者&#xff0c;有的时候不能 现在又更新了&#xff0c;回复到了原来…

tcp 确认应答和超时时间

1. 确认应答之间的时间&#xff08;RTT&#xff09;这是指 从发送方发送数据到接收方返回确认&#xff08;ACK&#xff09;之间的时间。它反映的是数据传输的 往返延迟。例如&#xff0c;发送方发送一个数据包&#xff0c;接收方收到后&#xff0c;回传一个确认包&#xff08;A…

图的应用-最短路径

最短路径的典型用途&#xff1a;交通网络的问题——从甲地到乙地之间是否有公路连通&#xff1f;在有多条通路的情况下&#xff0c;哪一条路最短&#xff1f;交通网络用有向网来表示&#xff1a;顶点——表示地点&#xff0c;弧——表示两个地点有路连通&#xff0c;弧上的权值…

【qt5_study】1.Hello world

模板 作为初学者我们选择第一个Application(Qt)和 Qt Widgets Application,所谓的模板就是 Qt为了方便开发程序,在新建工程时可以让用户基于一种模板来编写程序,包括 cpp文件, ui文件都已经快速的创建,而不用用户手动创建这些文件。 基类 这里默认选择的基类为 QMainWin…

项目构想|文生图小程序

Date: August 4, 2025项目介绍 &#x1f44b;&#xff0c;我们通过 Vibe Coding 做一个文字生成图片的小程序。 我们会从需求分析、技术选型、UI设计、项目构筑到最后打包&#xff0c;一路尝试 Vibe Coding 实现。 创建项目 创建文件夹&#xff1a;ai-pic-mini-app 采用 Git 进…

TiDB/MongoDB/Taosdb存储引擎概览

数据库类型存储引擎数据结构源码位置tidbRockDBLSM树https://github.com/facebook/rocksdbmongodbWiredTigerB 树/LSM树https://github.com/wiredtiger/wiredtigerTDengineTSDBBRINhttps://github.com/taosdata/TDengine 1、tidb存储引擎概览 LSM树数据结构描述LSM树(Log Str…

qt窗口--01

文章目录qt窗口--01窗口概览菜单栏工具栏状态栏浮动窗口子窗口对话框model结语很高兴和大家见面&#xff0c;给生活加点impetus&#xff01;&#xff01;开启今天的编程之路&#xff01;&#xff01; 作者&#xff1a;٩( ‘ω’ )و260 我的专栏&#xff1a;qt&#xff0c;Li…

Neo4j 社区版 Mac 安装教程

最近用到了nebulagraph图数据库做金融反欺诈项目&#xff0c;虽然nebula属于分布式架构&#xff0c;但依然感觉nebula使用不太顺手&#xff0c;这里顺便研究一下neo4j这款数据库如何&#xff0c;这里先从安装开始&#xff1f; 一、 准备工作 确认 Java 版本要求&#xff1a; N…

Android Studio(2025.1.2)Gemini Agent 使用指南

Android Studio&#xff08;2025.1.2&#xff09;Gemini Agent 使用指南 文章目录Android Studio&#xff08;2025.1.2&#xff09;Gemini Agent 使用指南1. 什么是 Gemini Agent&#xff1f;2. 如何启用和配置 Gemini Agent2.1 获取 API Key2.2 在 Android Studio 中配置3. 实…

计算机视觉--opencv(代码详细教程)

在计算机视觉的广袤领域中&#xff0c;OpenCV 是一座极为关键的里程碑。无论是在前沿的学术研究&#xff0c;还是在蓬勃发展的工业界&#xff0c;OpenCV 凭借其强大的功能与高效的性能&#xff0c;为开发者提供了丰富的图像处理和计算机视觉算法&#xff0c;助力无数项目落地。…

Centos6停止服务后yum改用阿里云

环境: OS:Centos 6.9 1.进入到yum配置目录 cd /etc/yum.repos.d 2.备份 cp CentOS-Base.repo CentOS-Base.repo.bk 3.下载 wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo 问题1: 因为Centos-6早就停止了更新维护&#xff0c;阿里云镜像网站将其仓库…

putty+Xming(XLaunch) 远程登录VirtualBox中的Ubuntu24.04,显示图形化(GUI)界面

测试环境&#xff1a;VirtualBox 7,Ubuntu24.04 desktop,Ubuntu24.04 Server(no desktop)&#xff0c;均测试成功。 一、先测试putty远程登录VirtualBox中的Ubuntu&#xff0c;可以使用ssh、Telnet 等协议。参见拙文《ssh连接VirtualBox中的Ubuntu24.04&#xff08;win11、put…