我正在尝试自学DS + A,但遇到了一些问题。
https://leetcode.com/problems/contains-duplicate/
对于这个问题,我想到的第一个方法是哈希表。我知道您可以使用一组衬里,但是我想尝试使用哈希表。
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
duplicates={}
for i in range(len(nums)):
if i in duplicates:
return False
return True
它通过11/18例,但是对于[0]的测试例,当预期输出为False时,它返回True。我似乎无法理解为什么它返回False。
我明白了。 Return语句太深了,我必须为每个循环更新它。
def containsDuplicate(self, nums: List[int]) -> bool:
duplicates={}
for i in nums:
if i in duplicates:
return True
else:
duplicates[i] = 0
return False ```
这里是经过稍微修改的解决方案,通过了指定的测试条件
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
dis={}
for el in nums:
if el in dis.keys():
return True
else:
dis[el]=1
return False