题目描述:
217. 存在重复元素https://leetcode.cn/problems/contains-duplicate/
题解思路:
1. 排序依次比较相邻元素是否相等
2.使用集合set,去除重复元素
3.最快检索的哈希表
#第一种解法,排序
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
nums.sort()
for i in range(len(nums)-1):
if nums[i]==nums[i+1]:
return True
return False
#第二种解法,set集合
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
if len(set(nums))!=len(nums):
return True
else:
return False
#第三种解法,字典
#(1)用内置函数collections
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
ct=collections.Counter(nums)
for value in ct.values():
if value!=1:
return True
return False
#(2)自定义字典
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
count=defaultdict()
for num in nums:
if num in count:
return True
count[num]=1
return False