题目在这:https://leetcode-cn.com/problems/contains-duplicate/
法一: (set集合法)
思路分析:
python 的set集合法可以做到去重效果,我们只需要将所给字符串变成集合,然后对比与之前的长度,即可知道是否存在相同的元素。
完整代码
return False if len(nums) == len(set(nums)) else True
法二:(排序)
思路分析
题目中要求,只需要判断是否有一个数出现过两次。
所以可以将数组排序,然后遍历找到当前元素和下一个元素是否相等即可。
完整代码
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
法三:(哈希表法)
思路分析
可以使用哈希表存该数组的索引和值。如果遍历过程发现相同的值则结束。
完整代码
def containsDuplicate(self, nums: List[int]) -> bool:
hashmap = {}
for index,key in enumerate(nums):
if key not in hashmap:
hashmap[key] = index
else:
return True
return False
该方法可以用于这种类型题的各种变种题。比如找相同元素下标啊,找下标差值。。。。。