题目
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false
示例 1:
输入: [1,2,3,1] 输出: true
示例 2:
输入: [1,2,3,4] 输出: false
示例 3:
输入: [1,1,1,3,3,4,3,2,4,2] 输出: true
解题:
方法一:利用集合set,快速得出结果
def containsDuplicate(nums): return len(nums) != len(set(nums))
方法二:排序,再两两判断,类似删除列表中重复元素,同样的思路
class Solution: def containsDuplicate(self, nums: List[int]) -> bool: if not nums: return False nums.sort() for i in range(1, len(nums)): if nums[i - 1] == nums[i]: return True return False
方法三:哈希表
class Solution: def containsDuplicate(self, nums: List[int]) -> bool: dic = {} for i in nums: if dic.get(i):#等效于 if i in dic: return True dic[i] = 1 return False
把遇到的键的值改为1,如果遇到重复的键,那么它的值为1时,就会返回True,说明重复了。