LeetCode系列287—寻找重复数

题意

287.寻找重复数

题解

方法一:转换为环形链表

将数组索引和值建立映射,可以构建一个链表,如果这个链表有环,则存在重复元素,问题转换为LeetCode系列142—环形链表2

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 slow;
    }
};

作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/find-the-duplicate-number/solution/xun-zhao-zhong-fu-shu-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/younothings/article/details/121551231