数据结构与算法每日一题——哈希表(349. 两个数组的交集)

33 阅读1分钟

349. 两个数组的交集

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function (nums1, nums2) {
    // 1.es6 数组中
    // let set1 = new Set(nums1)
    // let res = []
    // for (let i of nums2) {
    //     if (set1.has(i)) { res.push(i) }
    // }
    // res = [...new Set(res)]
    // return res
    // 2.set 再排序
    // if (set1.size > set2.size) {
    //     return set_intersection(set2, set1);
    // }
    // const intersection = new Set();
    // for (const num of set1) {
    //     if (set2.has(num)) {
    //         intersection.add(num);
    //     }
    // }
    // return [...intersection];
    // 3.利用filter
    let set1 = new Set(nums1)
    let set2 = new Set(nums2)
    return [...set1].filter((item) => {
        return set2.has(item)
    })
};
// var intersection = function (nums1, nums2) {
//     const set1 = new Set(nums1);
//     const set2 = new Set(nums2);
//     return set_intersection(set1, set2);
// };