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

Hot-287 寻找重复数

解法1:暴力搜索 - 超时

class Solution: def findDuplicate(self, nums: List[int]) -> int: # 暴力法:2个for循环: n = len(nums) - 1 for i in range(n): for j in range(i+1,n+1): if nums[i] == nums[j]: return nums[i] return nums[0]

解法2:Floyd 环 (快慢指针)

from typing import List class Solution: def findDuplicate(self, nums: List[int]) -> int: # 我懂了, # 第一步 # 你可以这么理解:对于数组nums=[num1,num2,num3 ... , numk] # 你按照从[nums[i]]索引的顺序来一个个添加进去 - 对应链表的构建过程 # 如果需要产生环,那么就一定要跳到原来的index上去,那之前也有这个index的跳跃 # 所以产生这两个相同跳跃的数值num_i 和 num_j 一定相同 # 所以一定只能是重复数字的位置可以产生环 # 并且index = 0 保证了 0 没有入度,也就是0一定不是环,可以作为入口 slow = nums[0] fast = nums[0] # 其实0也可以 while True: slow = nums[slow] fast = nums[nums[fast]] if slow == fast: break # 第二步 # 然后根据Floyd的环入口计算公式,让slow-fast相遇点 和 head 同时移动相遇在入口 head = nums[0] while slow != head: slow = nums[slow] head = nums[head] return slow
http://www.cnnetsun.cn/news/3881934.html

相关文章:

  • Visual Studio中C++多项目引用配置与依赖管理实战指南
  • 深入解析CPU缓存:从标志项、映射方式到高性能编程实践
  • 硬盘容量缩水真相:从二进制换算到文件系统开销的完整解析
  • 网易云音乐推荐歌单API逆向工程:Python模拟加密请求实战
  • 网站建设微信营销公司
  • 嵌入式开发板入门实战:从环境搭建到程序烧录完整指南
  • Unity多人游戏开发入门:基于Netcode for GameObjects实现网络同步与客户端预测
  • 深入解析ProxySQL故障转移机制:从原理到高可用实践
  • 中小型企业建设一个网站大概需要多少钱?老板必读的避坑指南
  • 基于STM32与DHT11的温湿度闭环控制系统仿真与实现
  • 基于树莓派与Home Assistant打造统一智能家居控制中心
  • GitLab HTTPS配置实战:从HTTP迁移到安全部署全解析
  • ag:比grep更快的代码搜索工具,提升Linux开发效率
  • 解析ELF链接错误EM:62:工具链不匹配与交叉编译架构冲突
  • Abaqus部件分割核心技巧:从网格划分到载荷施加的实战指南
  • sqlmap安装与配置全攻略:从零搭建自动化SQL注入测试环境
  • STM32串口通信(USART)从原理到实战:HAL库配置与DMA高级应用
  • 5分钟解锁Wand高级功能:开源Wand-Enhancer全面技术解析
  • AUTOSAR NvM配置详解:从核心原理到工程实践
  • DeepSeek V4 Flash实战指南:轻量高效大模型接入与优化
  • 从零构建AI智能体技能生态:OpenClaw接入ClawHub实战指南
  • OpenClaw AI Agent 框架:从架构原理到自动化工作流实战部署
  • 揭秘江门网站建设费用:从几千到几万到底差在哪?老板们必看干货
  • Unity Sentis实战:本地化AI模型推理与图像分类应用开发
  • Android Framework面试核心:Binder、Handler、View绘制与性能优化全解析
  • DISM工具深度解析:从原理到实战,修复Windows系统疑难杂症
  • Claude 4.8架构升级:从原型到规模化部署的完整路线图
  • NMOS高端驱动电路设计:从自举原理到H桥实战应用
  • Windows 11麦克风静音故障排查:从基础检查到深度修复的五步指南
  • 如何快速配置OBS Spout2插件:3个简单步骤实现高效视频流传输