两个数组的交集

给定两个数组,编写一个函数来计算它们的交集。

示例 1:

输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
示例 2:

输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
说明:

输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/intersection-of-two-arrays

首先利用 Set 对数组去重,然后检查较小的数组是否存在于较大的数组中,从而找到相同的元素:

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function(nums1, nums2) {
    let num1 = [...new Set(nums1)];
    let num2 = [...new Set(nums2)];
    let result = [];
    if(num1.length<=num2.length){
        for(let i=0;i<num1.length;i++){
            for(let j=0;j<num2.length;j++){
                if(num1[i]==num2[j]){
                    result.push(num1[i]);
                }
            }
        }
    }else {
        for(let i=0;i<num2.length;i++){
            for(let j=0;j<num1.length;j++){
                if(num2[i]==num1[j]){
                    result.push(num2[i]);
                }
            }
        }
    }
    
    return result;
};

 

posted @ 2019-07-15 09:43  湛蓝的家  阅读(523)  评论(0编辑  收藏  举报