📅  最后修改于: 2023-12-03 15:26:09.013000             🧑  作者: Mango
给定一个由正整数组成的数组和一个整数目标值,找出数组中和为目标值的两个数的下标。假设每种输入只对应一个答案,数组中同一个元素不能使用两遍。
一种常见的解决方案是使用哈希表。
我们遍历数组中的每个元素 $x$,查找是否存在一个值 $target - x$。具体地,我们可以用一个哈希表来存储数组中的元素及其下标,对于每个 $x$,我们首先查询哈希表中是否存在 $target - x$,然后将 $x$ 插入到哈希表中,即可保证不会让 $x$ 和自己匹配。
def twoSum(nums, target):
hash_table = {}
for i, num in enumerate(nums):
complement = target - num
if complement in hash_table:
return [hash_table[complement], i]
hash_table[num] = i
return []