📃题目
给你一个整数数组 nums
。如果任一值在数组中出现 至少两次
,返回 true
;如果数组中每个元素互不相同,返回 false
。
🪄解法
以下解法抛开复杂度不谈
1.集合对比法
# 集合对比法
def containsDuplicate1(nums):
tem = list(set(nums))
if sorted(tem) == sorted(nums):
# 排序太慢了,直接比较长度好些
# if len(tem) == len(nums):
return False
return True
2.集合算数法
# 集合算数法
# count太慢了,超时了
def containsDuplicate2(nums):
for i in set(nums):
if nums.count(i) >= 2:
return True
return False
3.排序看重法
排序后看相邻的元素是否有相同的
# 排序看重法
def containsDuplicate3(nums):
nums = sorted(nums)
tem = ''
for i in nums:
if tem == i:
return True
tem = i
return False
3.字典存放法
用字典来存放不同元素对应的次数
# 字典存放法
def containsDuplicate4(nums):
dict = {}
# 遍历一遍添加字典元素
for num in nums:
if num in dict:
# 有,加一
dict[num] += 1
else:
# 没有,创建
dict[num] = 1
for i in dict:
# 看看有没有次数大于1的
if dict[i] > 1:
return True
return False
❤️结尾
个人站点:点击查看
CSDN主页:点击查看
Leetcode:点击查看
不定期更新Leetcode题解(可能还有其它杂乱内容),欢迎关注!