掘金团队号上线,助你 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
};
四、总结
- 字典以键值对的形式来存储唯一值的数据结构
- 每天一练,持续学习