leetcode 1. 两数之和

2019-05-05  本文已影响0人  罗健伦

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

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

示例:

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

解题思路:

一遍哈希表

事实证明,我们可以一次完成。在进行迭代并将元素插入到表中的同时,我们还会回过头来检查表中是否已经存在当前元素所对应的目标元素。如果它存在,那我们已经找到了对应解,并立即将其返回。

var twoSum = function(nums, target) {
   
  var map = new Map()
  
   for(var i=0;i<nums.length;i++)
  {
     
   var complement =  target - nums[i]
      if(map.has(complement))
      {
        return  [map.get(complement), i]
      }
    map.set(nums[i],i)
  }
  
   
};

复杂度分析:

上一篇 下一篇

猜你喜欢

热点阅读