Skip to content

两数之和 / twoSum

题目描述

给定一个整数数组 nums 和一个整数目标值 target,找出和为目标值 target 的那 两个 整数,并返回它们的数组下标。

Code

javascript
function twoSum(nums, target) {
  const map = new Map();
  let result = [];
  nums.forEach((item, index) => {
    if (map.has(item)) {
      result = [map.get(item), index];
    } else {
      // 需要的值作为 key, 自身索引作为 值
      const key = target - item;
      map.set(key, index);
    }
  });
  return result;
}

Test Cases

javascript
const { twoSum } = require('../docs/algo/number/twoSum');

describe('twoSum', () => {
  it('case1', () => {
    expect(twoSum([2, 7, 11, 15], 9)).toEqual([0, 1]);
  });
  it('case2', () => {
    expect(twoSum([3, 3], 6)).toEqual([0, 1]);
  });
});