You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

两数之和(Two Sum)问题始终返回空数组,求JavaScript解决方案

两数之和(Two Sum)正确JavaScript实现

原代码的核心错误是将补数而非当前遍历的数值存入哈希表,导致无法正确匹配之前出现的目标数值,因此始终返回空数组。

正确实现代码

function twoSum(nums, target) {
  const map = {};

  for (let i = 0; i < nums.length; i++) {
    const comp = target - nums[i];
    // 检查哈希表中是否存在当前数值的补数
    if (map[comp] !== undefined) {
      return [map[comp], i];
    }
    // 将当前数值和对应的索引存入哈希表,供后续元素匹配
    map[nums[i]] = i;
  }
  // 遍历完未找到符合条件的两个数,返回空数组
  return [];
}

console.log(twoSum([2, 7, 11, 15], 9)); // 输出 [0, 1]

逻辑说明

  • 哈希表map用于记录已遍历数值的索引,实现O(1)时间复杂度的查找
  • 遍历每个元素时,先计算需要匹配的补数,再检查哈希表中是否存在该补数
  • 若存在则直接返回结果,不存在则将当前数值存入哈希表,继续遍历

内容的提问来源于stack exchange,提问作者The dumb coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 15:27:42