leecode第二百八十七题(寻找重复数)

Posted cjt-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leecode第二百八十七题(寻找重复数)相关的知识,希望对你有一定的参考价值。

技术图片

class Solution 
public:
    int findDuplicate(vector<int>& nums) 
        int slow_index= nums[0];
        int quick_index= nums[0];
        do
        
            slow_index=nums[slow_index];
            quick_index=nums[nums[quick_index]];
        while(slow_index!=quick_index);//可以理解成一个状态向量机,状态转移过程中一定会有环存在
        
        slow_index = nums[0];
        while (slow_index != quick_index) //检测环的入口,二者会在环入口处相遇
            slow_index = nums[slow_index];
            quick_index = nums[quick_index];
        
        
        return slow_index;
    
;

分析:

不太好理解。

以上是关于leecode第二百八十七题(寻找重复数)的主要内容,如果未能解决你的问题,请参考以下文章