应用快慢指针思想
class Solution {
public:
int findDuplicate(vector<int>& nums) {
int n=nums.size();
int fast=0;
int slow=0;
while(1)
{
slow=nums[slow];
fast=nums[nums[fast]];
if(slow==fast)
break;
}
fast=0;
while(fast!=slow)
{
fast=nums[fast];
slow=nums[slow];
}
return slow;
}
};
本文介绍了一种使用快慢指针的思想来查找数组中重复元素的方法。通过两个速度不同的指针遍历数组,先找到相遇点,再从起点同步移动直到再次相遇即为重复元素的位置。
549

被折叠的 条评论
为什么被折叠?



