Leecode hot100 - 287. 寻找重复数

题目描述

287. 寻找重复数 - 力扣(LeetCode)

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

思路

数组当作一个链表来看,数组的下标就是指向元素的指针,把数组的元素也看作指针。如 0 是指针,指向 nums[0],而 nums[0] 也是指针,指向 nums[nums[0]].

利用环形链表的思想,寻找环的入口

代码

class Solution:
    def findDuplicate(self, nums: List[int]) -> int:
        # 环形链表的思想,寻找环的入口
        slow = fast = 0
        while True:
            fast = nums[fast]
            fast = nums[fast]
            slow = nums[slow]
            if fast == slow:
                break
        
        head = 0
        while head != slow:
            head = nums[head]
            slow = nums[slow]
        return slow

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

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

相关文章

机器人控制器开发(驱动层——奥比大白相机适配)

文章总览 编译OrbbecSDK_ROS2的代码 执行命令 colcon buildros2 launch orbbec_camera dabai.launch.py问题1: 运行时报错: [component_container-1] [ERROR] [1757153916.450795107] [camera.camera_container]: Failed to load library: Could not…

`vcpkg` 微软开源的 C/C++ 包管理工具的使用和安装使用spdlog

vcpkg 是 微软开源的 C/C 包管理工具,类似于 Python 的 pip、Node.js 的 npm、Rust 的 cargo。 它的主要作用是:帮助你快速下载、编译、安装和管理 C/C 第三方库,并自动配置到你的项目(比如 Visual Studio、CMake、MSBuild&#x…

Mysql 幻读详解

我们来详细地聊一聊 MySQL InnoDB 中的“幻读”(Phantom Read)问题。这是一个在数据库事务隔离中非常核心且有时令人困惑的概念。 我会从定义、例子、原因以及解决方案几个方面来彻底讲清楚。 1. 什么是幻读? 官方定义:幻读指的…

如何生成 GitHub Token(用于 Hexo 部署):保姆级教程+避坑指南

如何生成 GitHub Token(用于 Hexo 部署):保姆级教程避坑指南 前置说明:为什么需要 GitHub Token? 在使用 Hexo 部署博客到 GitHub Pages 时,你可能会遇到「密码验证失败」或「需要双重验证」的问题——这…

常用加密算法之 AES 简介及应用

相关系列文章 常用加密算法之 SM4 简介及应用常用加密算法之 RSA 简介及应用 引言 AES(Advanced Encryption Standard,高级加密标准)是一种​​广泛使用的对称分组加密算法​​,它使用相同的密钥进行加密和解密操作&#xff0c…

Java面试问题记录(一)

一、Java 核心基础与进阶1、我们知道 Java 中存在 “值传递” 和 “引用传递” 的说法,你能结合具体例子,说明 Java 到底是值传递还是引用传递吗?这背后涉及到 JVM 中哪些内存区域的交互?Java中只有值传递,不存在引用传…

Redis 主从复制、哨兵与 Cluster 集群部署

文章摘要 本文基于 VMware 虚拟机环境,详细讲解 Redis 高可用架构的核心组件与部署流程,涵盖三大核心模块:Redis 主从复制(实现数据备份与读写分离)、Redis 哨兵(基于主从复制实现故障自动转移,…

ElementUI 中 validateField 对部分表单字段数组进行校验时多次回调问题

目录 方案一:循环调用 Promise.all 合并结果 方案二:直接传入数组字段 总结 在实际业务中,我们有时只需要对表单的部分字段进行校验。ElementUI 提供的 validateField 方法支持单个字段,也支持字段数组,但在使用时…

Visual Studio 2026 震撼发布!AI 智能编程时代正式来临

Visual Studio 2026 震撼发布!AI 智能编程时代正式来临 Visual Studio 2026 Insider图标 开发者们的开发环境即将迎来前所未有的智能革命,微软用Visual Studio 2026 重新定义了编码体验。 2025年9月10日,微软正式推出了Visual Studio 2026 In…

Gamma AI:高效制作PPT的智能生成工具

你有没有过这种崩溃时刻?领导让你下午交一份产品介绍 PPT,你打开模板网站翻了半小时没找到合适的,好不容易选了个模板,又得手动调整文字间距、搭配图片,光是把数据做成图表就花了一小时,最后赶出来的 PPT 还…

Python副业新玩法:用Flask搭小程序后端,躺赚被动收入的秘密

凌晨1点,林浩合上电脑时,手机弹出一条微信消息——是上周帮一家社区水果店搭的小程序后端,商家发来了当月的服务费到账提醒。他靠在椅背上笑了:这是这个月第8笔“睡后收入”,加起来刚好覆盖了下个月的房贷。半年前&…

基于PyQt5和阿里云TTS的语音合成应用开发实战[附源码】

项目概述 本文将详细介绍一个基于PyQt5图形界面框架和阿里云TTS(Text-to-Speech)服务的语音合成桌面应用程序的开发过程。该应用提供了完整的文字转语音功能,包括多音色选择、参数调节、实时试听、语速调节和音频下载等特性。 技术栈 前端界面: PyQt5 语音合成: 阿里云TTS服…

基于esp32c3 rust embassy 的墨水屏程序

EPD Reader 基于ESP32-C3的电子墨水屏阅读器,支持ap 配网、sntp 时间同步、txt阅读、天气预报、显示节假日信息、农历显示、自动休眠、web配置等功能。这是在另一个项目 一个rust embassy esp32c3 的练习项目-CSDN博客的基础上修改的 。 界面比较粗糙,以…

Spring 单例测试及线程安全

创建一个账户类 package com.duanhw.demo22.account;import org.springframework.beans.factory.annotation.Value;//Service public class AccountService {Value("1000")private Integer balance;//存款public void deposit(Integer amount){int newbalance balanc…

【vue】组件宽度调整失效后,调整的方法

父容器布局限制 若组件放置在栅格布局&#xff08;如display: grid&#xff09;或弹性容器中&#xff0c;父元素的宽度限制可能导致子组件宽度失效。解决方案是为父容器设置明确的宽度&#xff0c;或通过百分比布局实现自适应16。例如&#xff1a; <div style"width:…

Java 在Word 文档中插入页眉页脚:一份实用的编程指南

在现代企业应用中&#xff0c;Java 开发者经常需要处理各种文档操作&#xff0c;其中对 Word 文档的自动化处理尤为常见。无论是生成报告、合同还是其他商业文档&#xff0c;页眉页脚作为文档结构的重要组成部分&#xff0c;承载着公司 Logo、页码、版权信息等关键内容。手动添…

深入解析Dart虚拟机运行原理

Dart虚拟机运行原理 一、Dart虚拟机 1.1 引言 Dart VM是一种虚拟机&#xff0c;为高级编程语言Dart提供执行环境&#xff0c;但这并意味着Dart在D虚拟机上执行时&#xff0c;总是采用解释执行或者JIT编译。 例如还可以使用Dart虚拟机的AOT管道将Dart代码编译为机器代码&#xf…

光谱相机在AI眼镜领域中的应用

一、核心应用场景‌健康监测系统‌‌实时生理指标分析‌&#xff1a;通过眼周皮肤光谱特征&#xff0c;监测血氧(SpO₂)和血红蛋白变化&#xff0c;精度可达2%‌血糖无创检测‌&#xff1a;近红外光谱(900-1700nm)分析泪液成分&#xff0c;临床测试相关系数R0.87‌疲劳度评估‌…

如何通过url打开本地文件文件夹

安装部署 https://github.com/jixn-hu/notion_link_opener 这是我自己开发的一个后端服务&#xff0c;要一直开着 部署好后 会打开一个前端页面填下好你文件或者文件夹 点击生成短链就可以直接打开本地的文件夹了

第一篇:如何在数组中操作数据【数据结构入门】

记录以下自己重温数据结构的笔记&#xff0c;附带自己实现的C代码&#xff0c; 其中部分Python代码是网上教程里的&#xff0c;顺手粘贴过来&#xff0c;做一对比/ &#xff08;Python确实简洁&#xff0c;但是C更好理解不是吗哈哈哈&#xff09;数组的定义 数组&#xff1a;线…