leetcode287.寻找重复数
与寻找链表环的起始点一样 ,用快慢指针让二者相遇后,慢指针回到起始点二者以同样速度移动最终会在环的起始点相遇
class Solution {
public int findDuplicate(int[] nums) {
int slow = nums[0], fast = nums[0];
do {
slow = nums[slow];
fast = nums[nums[fast]];
} while (slow != fast);
slow=nums[0];
while(slow!=fast){
slow=nums[slow];
fast=nums[fast];
}
return slow;
}
}