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

LeetCode Hot100 287.寻找重复数

题目

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

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

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

方法:快慢指针

代码

class Solution {
    public int findDuplicate(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;
    }
}


http://www.kler.cn/a/153743.html

相关文章:

  • 剑指 Offer(第2版)题解(C++ Version)
  • Visual Studio Code之自动补全的设置
  • WPF不使用AllowsTransparency实现高性能透明背景异形窗体
  • MidJourney笔记(6)-Niji模式
  • 解决element ui tree组件不产生横向滚动条
  • JVM 类的加载
  • [Linux] 正则表达式及grep和awk
  • 微信小程序自定义tabBar简易实现
  • 二叉树的遍历及哈夫曼编码的代码思路及实现
  • Linux 系统是如何收发网络包的?(计算机网络)
  • 向量数据库,展望AGI时代
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • 2312skia,13画布包入门
  • 自然语言处理 (NLP) 中的组合语义分析
  • MicroPython STM32F4 RTC功能使用介绍
  • 【数据结构】循环链表和双向链表
  • redis单线程为什么这么快
  • CentOS系统环境搭建(二十三)——运行Java服务
  • 带你用uniapp从零开发一个仿小米商场_10.开发一个占剩余窗口的滚动区域
  • spring boot 3.2.0 idea从零开始