13 lines
335 B
Python
13 lines
335 B
Python
# the same as linked list cycle problem
|
|
def findDuplicate(self, nums):
|
|
if len(nums) <= 1: return -1
|
|
slow, fast = nums[0], nums[nums[0]]
|
|
while slow != fast:
|
|
slow = nums[slow]
|
|
fast = nums[nums[fast]]
|
|
|
|
fast = 0
|
|
while slow != fast:
|
|
slow = nums[slow]
|
|
fast = nums[fast]
|
|
return slow |