LeetCode 287 寻找重复数
🟠 中等偏上
https://leetcode.cn/problems/find-the-duplicate-number/description/
看成循环链表
class Solution {
public:
int findDuplicate(vector<int>& nums) {
// 下标是本节点的地址,也是val,nums[i] 存的是下一个数的地址(下标)
int slow = 0;
int fast = 0;
while(true){
slow = nums[slow];
fast = nums[nums[fast]];
if(slow == fast){
break;
}
}
fast = 0;
while(fast!=slow){
slow = nums[slow];
fast = nums[fast];
}
return slow;
}
};