题目

https://leetcode-cn.com/problems/two-sum/

方法

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 * 创建媒介所(字典表Map)
    遍历数组,匹配符合信息的目标值 taget - currentValue
    匹配成功返回两个数值下标
    匹配失败就将选手的信息放入媒介所
 */
var twoSum = function(nums, target) {
  if(!nums) return [];
  // 创建字典表
  const m = new Map();
  // 遍历nums数组
  for(let i = 0; i < nums.length; i++){
    // 获取当前值
    const n = nums[i];
    // 获取对当前与该值匹配的数值
    const n2 = target - nums[i];
    // 判断目标值是否在字典中
    if(m.has(n2)){
      // 是,在返回目标值的坐标和当前数值的坐标,如果有多个数的话,这里可以不用return,存到一个二维数组或者打印出来
      return [m.get(n2),i]
    }
    // 不在字典中,则放入字典,key为数值,value为下标
    m.set(n,i)
  }
};