Leetcode 217 存在重复元素 (set 哈希表)
链接↓
一些常用操作的时空复杂度总结
解法1 利用set哈希表的去重性
时间复杂度O(N)
空间复杂度O(N)
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
new = set(nums)
if len(new) != len(nums):
return True
else: return False
解法1plus 一行解决
时间复杂度O(N)
空间复杂度O(N)
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
return not len(set(nums)) == len(nums)
解法3
时间复杂度O(N)
空间复杂度O(N)
遍历nums ,使用一个哈希表来存储遍历的值,
当遍历到的值已经存在哈希表中,则说明存在重复。Return True
当遍历完nums都没有返回则说明不存在重复。Return False。
遇到不一样的就存成这样的形式:key:1
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
# 构建hash表 每个数字存一个key(保证不一样)
hashmap = {}
for i in nums:
if i not in hashmap:
hashmap[i] = 1
else:
return True
return False