day25笔记
1.题目描述
2.代码构思(debug)
class Solution:
def findDuplicate(self, nums: List[int]) -> int:
#二分法
left = 1
right = len(nums)-1
while left < right:
# print(left)
mid = (left + right) // 2
count = 0
for num in nums:
if num <=mid:
count +=1
if count > mid:
right = mid
else:
left = mid+1
return left
#快慢指针
slow = 0
fast = 0
while (1):
slow = nums[slow]
fast = nums[nums[fast]]
if slow == fast:
break
find = 0
while (1):
find = nums[find]
slow = nums[slow]
if (find == slow):
return find