0
点赞
收藏
分享

微信扫一扫

【LeetCode】350. 两个数组的交集 II

深夜瞎琢磨 2022-01-09 阅读 61

前言

两个数组的交集 II
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。

解法同【LeetCode】349. 两个数组的交集

/**
 * 哈希表
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersect = function(nums1, nums2) {
  const res = [], map = new Map()
  for (let i = nums1.length; i--;) {
    const v = nums1[i]
    const mv = map.get(v)
    if (mv) {
      map.set(v, mv + 1)
    } else {
      map.set(v, 1)
    }
  }
  for (let i = nums2.length; i--;) {
    const v = nums2[i]
    const mv = map.get(v)
    if (mv) {
      map.set(v, mv - 1)
      res.push(v)
    }
  }
  return res
};
举报

相关推荐

0 条评论