力扣刷题(第五十天)
灵感来源
- 保持更新,努力学习
- python脚本学习
存在重复元素
解题思路
最直接的思路是使用哈希集合(HashSet)来记录数组中已经出现过的元素。遍历数组时,检查当前元素是否已经在集合中:
- 如果存在,说明有重复元素,返回
true
- 如果不存在,将该元素加入集合
- 遍历结束后仍未发现重复元素,则返回
false
这种方法的时间复杂度是 O (n),空间复杂度是 O (n),其中 n 是数组的长度。
class Solution:def containsDuplicate(self, nums: List[int]) -> bool:seen = set()for num in nums:if num in seen:return Trueseen.add(num)return False
逐行解释
class Solution:def containsDuplicate(self, nums: List[int]) -> bool:# 使用集合(哈希表)来记录已经出现过的元素# 集合的特点是元素唯一,查找元素的时间复杂度为O(1)seen = set()# 遍历数组中的每个元素for num in nums:# 检查当前元素是否已经在集合中出现过if num in seen:# 如果存在,说明有重复元素,直接返回Truereturn True# 如果不存在,将当前元素加入集合seen.add(num)# 遍历完整个数组都没有发现重复元素,返回Falsereturn False