349. 两个数组的交集

Posted 沿着路走到底

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了349. 两个数组的交集相关的知识,希望对你有一定的参考价值。

​​​​​​力扣

给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

示例 1:

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


示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的

解题思路

求交集且无序唯一。

使用集合。

解题步骤

用集合对 nums1 去重。

遍历 nums1,筛选出 nums2 也包含的值。

/**
 * @param number[] nums1
 * @param number[] nums2
 * @return number[]
 */
var intersection = function(nums1, nums2) 
    const set1 = new Set(nums1)
    const set2 = new Set(nums2)

    return [...set1].filter(item => set2.has(item))
;

字典

解题思路

求 nums1 和 nums2 都有的值。

用字典建立一个映射关系,记录 nums1里有的值。

遍历 nums2,找出 nums1里也有的值。

解题步骤

新建一个字典,遍历 nums1,填充字典。

遍历 nums2,遇到字典里的值就选出,并从字典里删除。

var intersection = function(nums1, nums2) 
    const map = new Map()
    nums1.forEach(item => 
        map.set(item, true)
    )

    const res = []
    nums2.forEach(item => 
        if(map.has(item)) 
            res.push(item)
            map.delete(item)
        
    )

    return res
;

1

以上是关于349. 两个数组的交集的主要内容,如果未能解决你的问题,请参考以下文章

349. 两个数组的交集

349哈希表-两个数组的交集

Leecode刷题之旅-C语言/python-349两个数组的交集

LeetCode--349--两个数组的交集

LeetCode Java刷题笔记—349. 两个数组的交集

LeetCode Java刷题笔记—349. 两个数组的交集