力扣-287.寻找重复数

题目链接

287.寻找重复数

java 复制代码
class Solution {
    public int findDuplicate(int[] nums) {
        int low = nums[0];
        int fast = nums[nums[0]];
        //1.快慢指针找相遇点
        while (low != fast) {
            low = nums[low];
            fast = nums[nums[fast]];
        }
        //2.双指针找入环点
        int pre = 0;
        while (pre != low) {
            pre = nums[pre];
            low = nums[low];
        }
        return pre;
    }
}

小结:对nums数组建图,每个位置i连一条i → nums[i]的边。由于有且仅有唯一的重复数字target,因此target这个位置一定有起码两条指向它的边,因此整张图一定存在环,且我们要找到的target就是这个环的入口,那么整个问题就等价于142. 环形链表 II

相关推荐
让我们一起加油好吗20 分钟前
【基础算法】贪心 (四) :区间问题
c++·算法·贪心算法·洛谷
孤独的追光者1 小时前
论文阅读|汽车虚拟环绕音响系统设计与实现策略的比较研究
算法·汽车·音频·信号处理·数字信号处理
黄皮の电气鼠1 小时前
C++:继承
开发语言·c++·算法
shylyly_1 小时前
专题一_双指针_查找总价格为目标值的两个商品
c++·算法·leetcode·双指针·查找总价格为目标值的两个商品·和为s的两个数
zzj_2626101 小时前
高精度乘法
算法
我尽力学1 小时前
HashMap的get、put流程源码分析
算法·哈希算法
IT猿手2 小时前
2025最新智能优化算法:沙狐优化(Rüppell‘s Fox Optimizer,RFO)算法求解23个经典函数测试集,完整MATLAB代码
android·算法·matlab·迁移学习·优化算法·动态多目标优化·动态多目标进化算法
嗜好ya2 小时前
LeetCode 560: 和为K的子数组
数据结构·算法·leetcode
络73 小时前
HashMap的put、get方法详解(附源码)
算法·哈希算法·hashmap
微光-沫年3 小时前
141-CEEMDAN-VMD-Transformer-BiLSTM-ABKDE多变量区间预测模型!
算法·matlab·回归