LeetCode 217题 存在重复元素
LeetCode 217题 存在重复元素
题目描述:
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
涉及内容:数组 哈希表
示例:
输入: [1,2,3,1]
输出: true
输入: [1,2,3,4]
输出: false
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
思路:
对于python来说,直接比较原来长度len(nums)和set(nums)的长度,相同说明不存在相同元素,返回false 不相同说明存在相同元素(这里也只可能set的小于len)返回true
提交结果:

完整代码:
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
return len(set(nums)) != len(nums)
其他思路:
-
排序:将数组排序 之后遍历比较每个数和其后面的数关系 相同就返回true 遍历完都不同就false
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 -
哈希表:
-
遍历数组,将数组元素加入哈希表
-
如果元素存在哈希表中,则表示重复,返回true,否则遍历完的话没重复返回false
class Solution: def containsDuplicate(self, nums: List[int]) -> bool: # 声明集合 s = set() # 遍历数组,将元素添加到集合中 for num in nums: # 若元素存在于集合中,表示存在重复元素 if num in s: return True s.add(num) return False
-
浙公网安备 33010602011771号