#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param numbers int整型一维数组
# @return int整型
#
class Solution:
##方法一:
# def duplicate(self , numbers: List[int]) -> int:
# if not numbers: ##存在不合法的输入则输出-1
# return -1
# tmp=[] ##创建一个空数组作为比较的数组
# lenth=len(numbers)
# ##遍历原数组,如果空数组不含该数字,则加入,如果含该数字,说明数字重复,返回该数字即可
# for i in range(0,lenth):
# if numbers[i] not in tmp:
# tmp.append(numbers[i])
# else:
# return numbers[i]
##方法二:
# def duplicate(self , numbers: List[int]) -> int:
# if not numbers:
# return -1
# ##因为长度为n的数组里的所有数字都在0到n-1的范围内
# ##所以先将数组升序排列,再遍历数组中是否有重复的
# numbers.sort() #reverse = True 降序, reverse = False 升序(默认)
# lenth=len(numbers)
# for i in range(0,lenth):
# if i<lenth and numbers[i]==numbers[i+1]:
# return numbers[i]
##方法三:
def duplicate(self , numbers: List[int]) -> int:
# write code here
if numbers:
s = set() #set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
for number in numbers:
if number in s:
return number
else:
s.add(number)
else:
return -1
# write code here