一、题意
给定一个整数数组,判断数组中是否存在重复的元素。如果存在一值在数组中出现至少两次,函数返回 True ;如果数组中每个元素都不相同,则返回 False 。
输入: [1, 2, 3, 1]
输出: True
输入: [1, 2, 3, 4]
输出: False
解题思路:
我们可以使用哈希表(在 Python 里用字典实现)来解决这个问题。具体做法是遍历数组,对于每个元素,检查它是否已经存在于哈希表中:
若存在,说明该元素是重复的,直接返回 True。
若不存在,将该元素存入哈希表。
若遍历完整个数组都没发现重复元素,返回 False。
二、代码
1.代码的实现
def containsDuplicate(nums):
# 创建一个空的哈希表
hash_table = {}
# 遍历数组
for num in nums:
# 检查元素是否已经在哈希表中
if num in hash_table:
return True
# 将元素存入哈希表
hash_table[num] = True
# 遍历完数组都没发现重复元素,返回 False
return False
# 测试代码
nums1 = [1, 2, 3, 1]
nums2 = [1, 2, 3, 4]
print(containsDuplicate(nums1))
print(containsDuplicate(nums2))