一、题目
给定一个整数数组,判断是否存在重复元素。
例1:
输入: [1,2,3,1]
输出: true
例2:
输入: [1,2,3,4]
输出: false
例3:
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
二、解法
解法一
先排序数组,然后设置一个变量 love
,指向数组的第一位,然后从数组第二位开始遍历数组,当两者相等时,返回 True
,否则 love
加一,一直遍历结束
代码如下:
nums.sort()
love = 0
for x in range(1, len(nums)):
if nums[love] == nums[x]:
return True
love += 1
else:
return False
时间 60ms,击败了 77%
解法二
看了执行用时更短的答案后,豁然开朗,直接用
set()
函数不就行了么
set()
函数可以创建一个无序的不重复元素集,也就是可以把 nums
里的重复的去掉,然后我们直接比较 set(nums)
和 nums
的长度就行了,两者相等就是没有重复的,返回 False
, 否则返回 True
代码如下:
return len(set(nums)) != len(nums)
时间 56ms,击败了 95%
结语
欢迎关注我的公众号
疯子的Python笔记