题目描述

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

解题思路

  • 把nums想象成相亲者,把target想象成匹配条件,用字典建立一个婚姻介绍所,存储相亲者的值和下标
  • 新建一个字典当作婚姻介绍所
  • nums里的值,逐个来介绍所找对象,没有合适的就先登记到介绍所里的人才库里,有的话就牵手成功

代码实现

  1. /**
  2. * @param {number[]} nums
  3. * @param {number} target
  4. * @return {number[]}
  5. */
  6. var twoSum = function (nums, target) {
  7. const map = new Map()
  8. const len = nums.length
  9. for (let i = 0; i < len; i++) {
  10. const n = nums[i]
  11. const n2 = target - n
  12. if (map.has(n2)) {
  13. return [map.get(n2), i]
  14. } else {
  15. map.set(n, i)
  16. }
  17. }
  18. }