题目链接: https://leetcode-cn.com/problems/contains-duplicate/
给定一个整数数组,判断是否存在重复元素。
如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
示例 1:
输入: [1,2,3,1]
输出: true
示例 2:
输入: [1,2,3,4]
输出: false
示例 3:
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
思路:
1: 排序后,相连元素如果相等,则说明有重复值
2: 哈希表,以元素作为key,value为出现次数,如果出现次数大于1,则有重复值
3: 集合,本身长度与集合长度的关系,若集合长度小于原先长度,则说明有重复值
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
if not nums or len(nums) < 1:
return False
# set
'''
len1 = len(nums)
set1 = set(nums)
len2 = len(set1)
if len2 < len1:
return True
return False
'''
# 哈希表
'''
res = {}
for num in nums:
if num in res:
return True
res[num] = 1
return False
'''
# 排序
nums_sort = sorted(nums)
length = len(nums)
for i in range(0, length-1):
if nums_sort[i] == nums_sort[i+1]:
return True
return False