287-Find-the-Duplicate-Number
0x0 题目详情
0x1 解题思路
0x2 代码实现
class Solution {
public int findDuplicate(int[] nums) {
//快慢指针从第一个元素开始
int fast = 0, slow = 0;
while(true) {
//第一次相遇
fast = nums[nums[fast]];
slow = nums[slow];
if(slow == fast) {
fast = 0;
//第二次相遇
while(nums[slow] != nums[fast]) {
fast = nums[fast];
slow = nums[slow];
}
return nums[slow];
}
}
}
}0x3 课后总结
Last updated