给定一个整数数组,其中每个数字出现三次,只有一个数字出现两次,找出出现两次的数字。
解决这个问题可以使用哈希表来统计每个数字出现的次数。遍历整个数组,将每个数字作为键,出现的次数作为值存储在哈希表中。最后再遍历哈希表,找出出现两次的数字。
以下是一个可能的解答:
def findDuplicate(nums):
count = {}
for num in nums:
if num in count:
count[num] += 1
else:
count[num] = 1
for num in count:
if count[num] == 2:
return num
# 示例输入
nums = [1, 2, 3, 4, 5, 4, 3, 2, 1]
# 输出结果
print(findDuplicate(nums))
这个解答使用了一个字典 count
来统计每个数字出现的次数。首先遍历整个数组,如果数字已经在字典中,则将对应的值加1;如果数字不在字典中,则将其添加到字典中,并将值初始化为1。然后再次遍历字典,找出出现两次的数字并返回。
这个问题的时间复杂度为 O(n),其中 n 是数组的长度。空间复杂度为 O(n),因为需要使用一个字典来存储数字出现的次数。
腾讯云相关产品和产品介绍链接地址:
请注意,以上只是腾讯云的一些相关产品,其他云计算品牌商也提供类似的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云