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. 两个数组的交集的主要内容,如果未能解决你的问题,请参考以下文章
Leecode刷题之旅-C语言/python-349两个数组的交集