/*
* @lc app=leetcode.cn id=350 lang=javascript
*
* [350] 两个数组的交集 II
*/
// @lc code=start
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var intersect = function (nums1, nums2) {
const hash = new Map()
const ans = []
for (let i = 0; i < nums1.length; i++) {
const cur = nums1[i];
hash.set(cur, (hash.get(cur) || 0) + 1);
}
for (let j = 0; j < nums2.length; j++) {
const cur = nums2[j];
const val = hash.get(cur);
if (val === 1) {
hash.delete(cur);
ans.push(cur);
} else if (val > 1) {
hash.set(cur, val - 1);
ans.push(cur);
}
}
return ans;
};
// @lc code=end