题解 | #数组中重复的数字#
数组中重复的数字
http://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524
剑指offer第一天
1.判断相关的数据是否有重复,并输出相应的不满足条件数字
我的解决方案
class Solution:
def duplicate(self , numbers: List[int]) -> int:
if any(numbers)>len(numbers) or len(numbers)==0:
return -1
else:
for index,i in enumerate(numbers):
if i in numbers[index+1:]:
return i
# write code here
# 其他情况
return -1
他人高效解决方案:使用hash表进行存储 运行时间减少了,运行空间比我们的多
class Solution:
def duplicate(self , numbers: List[int]) -> int:
#哈希表记录重复
mp = dict() # 这可以直接定义一个字典进行表示
#遍历数组
for num in numbers:
#如果没有出现过就加入哈希表
if num not in mp:
mp[num] = 1 # 将字典的值key进行赋值操作,字典遍历得到的是key
#否则就是重复数字
else:
return num
#没有重复
return -1