yanggengzhen123 / leetcode-group

力扣小组
0 stars 0 forks source link

2022.03.29-第63题-349. 两个数组的交集 #65

Open icodeish opened 2 years ago

icodeish commented 2 years ago

https://leetcode-cn.com/problems/intersection-of-two-arrays/ 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

示例 1:

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

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 解释:[4,9] 也是可通过的

yanggengzhen123 commented 2 years ago
function intersection(nums1: number[], nums2: number[]): number[] {
    let res = new Set<number>()
    // 比较大小
    if(nums2.length > nums1.length){
        let temp = nums2
        nums2 = nums1
        nums1 = temp
    }
    let numsSet = new Set<number>(nums1)
    for(let i = 0;i < nums2.length;i++){
        if(numsSet.has(nums2[i])){
            res.add(nums2[i])
        }
    }
    return [...res] as number[]
};
icodeish commented 2 years ago
var intersection = function (nums1, nums2) {
    let res = []
    let len1 = nums1.length
    let len2 = nums2.length
    if (len1 > len2) {
        for (let i = 0; i < len2; i++) {
            if (nums1.indexOf(nums2[i]) !== -1) {
                if (res.indexOf(nums2[i] === -1)) {
                    res.push(nums2[i])
                }
            }
        }
    } else {
        for (let i = 0; i < len1; i++) {
            if (nums2.indexOf(nums1[i]) !== -1) {
                if (res.indexOf(nums1[i] === -1)) {
                    res.push(nums1[i])
                }
            }
        }
    }
    return [...new Set(res)]
}
BambooSword commented 2 years ago
var intersection = function(nums1: number[], nums2: number[]): number[] {
    let arr: number[] = [];
    for (let i: number = 0; i< nums2.length; i++) {
        if (nums1.includes(nums2[i])) {
            arr.push(nums2[i])
        }
    }
    return Array.from(new Set(arr));
};