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;
    }
};
相关推荐
半桔几秒前
【网络编程】TCP 服务器并发编程:多进程、线程池与守护进程实践
linux·服务器·网络·c++·tcp/ip
cwplh15 分钟前
MX模拟赛总结
算法·动态规划
橘子1328 分钟前
C++实战:搜索引擎项目(二)
开发语言·c++·搜索引擎
浅川.2528 分钟前
xtuoj 随机数
算法
shan&cen28 分钟前
Day02 集合 | 30. 串联所有单词的子串、146. LRU 缓存、811. 子域名访问计数
java·数据结构·算法·缓存
应用市场1 小时前
Qt C++ 图形绘制完全指南:从基础到进阶实战
开发语言·c++·qt
NAGNIP1 小时前
大模型微调框架之TRL
算法
麦当_1 小时前
SwipeMultiContainer 滑动切换容器算法指南
前端·javascript·算法
橘子131 小时前
递归,搜索与回溯算法
算法
青草地溪水旁1 小时前
设计模式(C++)详解—单例模式(2)
c++·单例模式