Day18力扣打卡

打卡记录

寻找重复数(双指针)

链接

Floyd判圈法,先用快慢指针以不同速率进行移动,最终一定会出现相遇点,然后在使一指针从初始开始,两指针再以同步调移动,再次相遇的点一定为循环开始的点位。

cpp 复制代码
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 fast;
    }
};
相关推荐
kyle~18 分钟前
Qt---setAttribute设置控件或窗口的内部属性
服务器·前端·c++·qt
hsjkdhs1 小时前
C++之多态
开发语言·jvm·c++
kyle~1 小时前
C++STL---静态数组array
开发语言·c++
爱编程的鱼1 小时前
C# 变量详解:从基础概念到高级应用
java·算法·c#
kk”2 小时前
C++ List
开发语言·c++
tkevinjd2 小时前
反转链表及其应用(力扣2130)
数据结构·leetcode·链表
HalvmånEver2 小时前
红黑树实现与原理剖析(上篇):核心规则与插入平衡逻辑
数据结构·c++·学习·算法·红黑树
哆啦刘小洋2 小时前
T:堆的基本介绍
算法
初圣魔门首席弟子3 小时前
c++ bug 记录(merge函数调用时错误地传入了vector对象而非迭代器。)
java·c++·bug
AresXue3 小时前
你是否也在寻找二进制和字符串的高效转换算法?
算法