经典算法 — 两数之和

经典算法 — 两数之和

题目描述

  • 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
/**
 * @param {number []} nums
 * @param {number} target
 * @return {number []}
 */
var twoSum = function(nums, traget) {
  var map = new Map()
  for(let i in nums) {
    if(map.get(traget - nums[i])) {
      return [map.get(traget - nums[i]), i]
    } else {
      map.set(nums[i], i)
    }
  }
  return []
}
  • 结论
    两数之和首先是双遍历(O(n * n))。
    也可以遍历两次,第一次是把数组变成一个对象(key是数值,value是下标)。然后在遍历一次(O(2 * n))
    本次结果是用一次遍历,满足则返回,不满足责放入map集合中
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,944评论 0 5
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,715评论 0 2
  • 线性表中的双指针法是指通过两个指针(游标)来指示线性表中的元素的方法。双指针的使用本身并没有什么神奇之处,但是通过...
    Like_eb56阅读 3,462评论 0 0
  • <center>#1 Two Sum</center> link Description:Given an arr...
    铛铛铛clark阅读 6,600评论 0 3
  • 这个女人本名叫什么我也不知道,就暂且跟着认识她的人叫她芋头吧。 她三十岁出头,身高大概155厘米左右,身材中等,仔...
    小影微斜阅读 1,527评论 0 1