如何用 JavaScript 在数组中找到目标值的和?

7 min read

可以使用哈希表来解决这个问题。用一个哈希表存储数组中的每个数的值和索引,然后遍历数组中的每个数,检查目标值减去当前数是否在哈希表中。

以下是一种可能的实现:

def two_sum(nums, target):
    hash_map = {}
    for i, num in enumerate(nums):
        complement = target - num
        if complement in hash_map:
            return [hash_map[complement], i]
        hash_map[num] = i
    return []

在这个实现中,我们定义了一个哈希表 hash_map,用于存储数组中的数和其索引。然后我们遍历数组中的每个数 num,计算目标值 target 减去 num 的差值 complement。如果 complement 在哈希表中,说明存在一个和为目标值的数对,我们返回这两个数的索引;否则我们将当前数 num 存入哈希表中。如果不存在和为目标值的数对,我们返回一个空数组。

例如,对于数组 nums = [2, 7, 11, 15] 和目标值 target = 9,调用 two_sum(nums, target) 将返回数组 [0, 1],因为 nums[0] + nums[1] = 2 + 7 = 9