力扣第一题 两数之和 hashmap解法

45 阅读1分钟

一些废话

21年的某个冬天,作者通过了某家天使轮公司的线上八股文面试环节,二面来到了五道口的公司现场,面临cto的二面,结果根本没问技术问题,上来让我刷力扣,最后卒。从此我奋战力扣,其中一道经典问题就是两数之和。如果大家想成为一名前端工程师,还是要对算法有所掌握,这是编程的骨骼 血肉。刚开始写起来的时候抓耳挠腮,毫无思路,脸憋着通红,举步维艰,如履薄冰,后来逐渐长袖善舞。也对编程有了更深层次的认知和理解。

解题思路 时间复杂度O(n)

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

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

image.png 话不多说 直接代码奉上 JS

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