字典

字典是什么?

  • 与set类似,map也是一种存储唯一值得数据结构,但它是以键值对的形式来存储
  • 常用操作:键值对的增删改查

求两个数组的交集

给定两个数组,编写一个函数来计算它们的交集

let intersection = function (nums1, nums2) {
  const map = new Map()
  nums1.forEach(n => {
    map.set(n, true)
  });
  const res = []
  nums2.forEach(n => {
    if (map.get(n)) {
      res.push(n)
      map.delete(n)
    }
  })
  return res
}

console.log(intersection([1, 2, 3, 5, 6, 2, 1], [2, 4, 6])) // [2, 6]

两数之和

给定一个整数数组nums和一个目标值target,在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。数组中同一个元素不能使用两遍

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

console.log(twoSum([1, 2, 3, 5, 6, 7, 8], 9))
posted @ 2022-05-11 20:03  见信  阅读(38)  评论(0)    收藏  举报