NC61 两数之和

233 阅读1分钟

image.png

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param numbers int整型一维数组
 * @param target int整型
 * @return int整型一维数组
 */
function twoSum(numbers, target) {
    // write code here
   const map = new Map(); // 构建一个Map,用于记录每个数的值和对应的下标

  for (let i = 0; i < numbers.length; i++) {
    const num = numbers[i];
    const diff = target - num; // 计算目标值与当前数的差

    if (map.has(diff)) {
      // 若记录中存在差值,说明找到了一组解,直接返回即可
      return [map.get(diff), i + 1];
    } else {
      // 若记录中不存在差值,将当前数及对应下标加入哈希表中
      map.set(num, i + 1);
    }
  }

  return []; // 如果没有找到解,返回一个空数组
}
module.exports = {
    twoSum: twoSum,
};

两数之和_牛客题霸_牛客网 (nowcoder.com)