[LeetCode-0349-两个数组的交集] | 刷题打卡

128 阅读1分钟

掘金团队号上线,助你 Offer 临门! 点击 查看详情

一、题目描述

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


示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]

示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]

二、思路分析

求两个数组的交集,我们可以考虑到用字典,
1. 将nums1存到字典中
2. 遍历nums2的时候,判断在字典中是否存在
3. 存在,就push到结果数组里,并且在字典中删除掉

三、解题代码


/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function(nums1, nums2) {
    const map = new Map()
    nums1.forEach(v => {
        map.set(v, true)
    })
    const res = []
    nums2.forEach(n => {
        if (map.get(n)) {
            res.push(n)
            map.delete(n)
        }
    })
    return res
};

四、总结

  • 字典以键值对的形式来存储唯一值的数据结构
  • 每天一练,持续学习