1、题目
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
示例 1:
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
2、解答
- 排序法:直接排序,然后连续的元素有相同的就是有重复元素。
- 去重法:使用set去重后的长度要是小于原始数组长度就是有重复元素。
其实还有其他方法,但是整体思路是这两个方向。
class Solution(object):
def containsDuplicate(self, nums):
"""
去重法:直接比较set前后数组长度即可
:type nums: List[int]
:rtype: bool
"""
return len(nums)>len(set(nums))
def containsDuplicate2(self, nums):
"""
排序法
:param nums:
:return:
"""
nums.sort()
prev = nums[0]
for i in nums[1:]:
if prev==i:
return True
prev = i
return False