217. 存在重复元素
题目
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
示例
输入: [1,2,3,1]
输出: true
一开始的想法是定义哈希表,像记录词频一样记录每个列表的频次,然后遍历value,看看有没有频次超过1的。官方答案给出得更加简洁,他直接利用了集合中,键值唯一性,如果有重复就返回true,然后我尝试把集合换成列表,发现超时了,说明还是只能用集合来缩短遍历时间
class Solution:
def containsDuplicate(self,nums:List[int])->bool:
if len(nums)<=0:return False
if len(nums)<2:return False
hash_map=set()
for num in nums:
if num not in hash_map:
hash_map.add(num)
else:
return True
return False
测试用例
def containsDuplicate(nums):
if len(nums)<=0:return False
if len(nums)<2: return False
hash_map=set()
for num in nums:
if num not in hash_map:
hash_map.add(num)
else:
return True
return False
nums=[1,1,2,2,3]
print(containsDuplicate(nums))