leetcode 349. 两个数组的交集

一、题目

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

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

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

二、解法

go中没有set,可以用map表示set。value类型为struct{}时,不占用内存空间,可以看做set了

func intersection(nums1 []int, nums2 []int) []int {
    var ans []int
    set:=make(map[int]struct{})
    for _,n:=range nums1{
        set[n]=struct{}{}
    }
    for _,n:=range nums2{
        if _,ok:=set[n];ok{
            ans=append(ans,n)
            delete(set,n)
        }
    }
    return ans
}
posted @ 2022-01-07 00:00  livingsu  阅读(29)  评论(0)    收藏  举报