# 两个数组的交集 II
- 有效的括号
来源:力扣(LeetCode) 链接 (opens new window):https://leetcode.cn/problems/intersection-of-two-arrays-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
# 问题
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2,2]
# 思路
var intersect = function (nums1, nums2) {
let map1 = makeCountMap(nums1);
let res = [];
for (let index = 0; index < nums2.length; index++) {
const element = nums2[index];
if (map1.has(element)) {
const value = map1.get(element);
if (value > 0) {
res.push(element);
map1.set(element, value - 1);
}
}
}
return res;
};
function makeCountMap(nums) {
let map = new Map();
for (let i = 0; i < nums.length; i++) {
let num = nums[i];
let count = map.get(num);
if (count) {
map.set(num, count + 1);
} else {
map.set(num, 1);
}
}
return map;
}
const r = intersect(nums1, nums2);
console.log("r", r);