给定一个整数数组,判断是否存在重复元素。
1、如果任何值在数组中出现至少两次,函数返回 true。
2、如果数组中每个元素都不相同,则返回 false。
示例 1:
# 输入:
[1,2,3,1]
# 输出:
True
示例 2:
# 输入:
[1,2,3]
# 输出:
False
解题的方式有很多,但是如果考虑算法的时间复杂度,解题就不能只是简单的使用两个for
循环可以解决的,因为两个for循环的时间复杂度为O(n^2)
。
解题思路:
考虑算法的时间复杂度,程序使用一个for循环遍历所有元素,将每个元素存入字典,借助字典的键不重复的特性,可以判断列表是否有重复元素。
代码实现:
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
d = {}
for num in nums:
if num not in d:
d[num] = 0
else:
return True
return False
程序执行时间: