JS 实现两数之和

JS 实现两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:

给定 nums=[2,7,11,15],target=9
因为nums[0]+nums[1]=2+7=9
所以返回[0,1]

思路
使用一个map将遍历过的数字存起来,值作为key,下标作为值。
对于每一次遍历:

  • 取map中查找是否有key为target-nums[i]的值
  • 如果找到了,则条件成立,返回。
  • 如果没取到,将当前值作为key,下标作为值存入map

时间复杂度O(n)

空间复杂度O(n)

对Map的理解

key 2 7 11 15
value 0 1 2 3
var twoSum=function(nums,target){
   //生成一个map
  const map={};
  if(Array.isArray(nums)){
    for(let i=0;i<nums.length;i++)
    {
        //如果map[key] 不存在,则会返回undefined
        if(map[target-nums[i]]!=undefined){
            return [map[target-nums[i],i];
         }else{
         // 将nums中第i个数作为map的key,索引i作为map的value存入map中
         map[nums[i]=i;
         }
     }
  }
  return [];
};

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>