1. 数组中重复的数字
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字
方法一:
def findRepeatNumber(nums):
res = []
repeat = ""
length = len(nums)
i = 0
while i < length:
if nums[i] not in res:
res.append(nums[i])
else:
repeat = nums[i]
break
i += 1
return repeat
方法二:
def findRepeatNumber(nums):
unique = set()
for num in nums:
if num in unique:
return num
unique.add(num)
return -1
方法三:
def findRepeatNumber(nums):
for i in range(len(nums)):
temp = 0
while nums[i]!= i:
if nums[i] == nums[nums[i]]:
return nums[i]
temp = nums[i]
nums[i] = nums[temp]
nums[temp] = temp
return -1