📅  最后修改于: 2023-12-03 14:54:56.273000             🧑  作者: Mango
在编程中,我们经常需要处理各种数据结构来解决问题。数据结构是计算机中存储、组织和管理数据的方式。问题 1 是一个杂项问题,涉及到数据结构中的某些概念和操作。
给定一个数组和一个目标值,编写一个函数来判断数组中是否存在两个数之和等于目标值的情况。如果存在,返回这两个数的索引;如果不存在,返回空数组。
输入:
数组: [2, 7, 11, 15]
目标值: 9
输出:
[0, 1]
这个问题可以通过一次遍历数组来解决。我们可以使用一个哈希表来存储数组中的元素和它们的索引。然后,对于每个元素,我们可以查找哈希表中是否存在目标值减去当前元素的差。如果存在,那么返回它们的索引;如果不存在,继续遍历。这样,我们可以在 O(n) 的时间复杂度内解决这个问题。
def twoSum(nums, target):
num_dict = {}
for i, num in enumerate(nums):
complement = target - num
if complement in num_dict:
return [num_dict[complement], i]
num_dict[num] = i
return []
这个问题中,我们使用了哈希表来存储已遍历的元素,以便快速查找目标值减去当前元素的差。通过这种方式,我们可以在线性时间内解决两数之和的问题。