题目描述:
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 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
原文:https://www.cnblogs.com/leohbz/p/14689251.html