自学内容网 自学内容网

leetcode350-两个数组的交集II

leetcode 350
在这里插入图片描述

思路

先对nums1中的每个数出现的频次进行一个记录,然后遍历nums2,判断是否对这个数有记录,并且值大于0,如果>0那么这个数是交集的数,因为这时候nums1中还有这个数可以匹配上

实现

var intersect = function (nums1, nums2) {
    const map = new Map();
    const result = [];
    nums1.forEach(item => {
        // 记录出现的频次
        map.set(item, (map.get(item) || 0) + 1)
    })
    nums2.forEach(item => {
        // 如果是0或者undefined不会进入
        if (map.get(item)) {
            result.push(item);
            // 加入以后将频次-1
            map.set(item, map.get(item) - 1);
        }
    })
    return result;
};

原文地址:https://blog.csdn.net/weixin_45799371/article/details/145267155

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!