我的Python代码: 在这个例子中,我使用 hashmap 并在将数组元素插入到 hashmap 之前进行比较,如果该元素已经存在则返回 True...
class Solution(object):
def containsDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
map={}
for i in range(len(nums)):
if nums[i] in map:
return True
map[i]=nums[i]
return False
这段代码给了我错误的 [3,3] 答案,即 false 但预期输出是 true 我尝试为此进行试运行,但根据我的代码,我变得真实了 如果我有任何错误请告诉我
您的方法是缓存数字和所有索引:
class Solution(object):
def containsDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
map = {}
for i, num in enumerate(nums):
if num in map:
return True
map[num] = i
return False
更好的方法是使用
set()
如评论:
class Solution:
def containsDuplicate(self, nums):
return len(nums) != len(set(nums))
它不如使用集合那么有效。这种情况下的时间复杂度是 O(N)
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
counts = {}
for num in nums:
if num in counts:
return True
counts[num] = 1
return False # No duplicates found