文章目录
349. 两个数组的交集
给定两个数组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] 也是可通过的
提示:
- 1 <= nums1.length, nums2.length <= 1000
- 0 <= nums1[i], nums2[i] <= 1000
解题思路
Go代码
func intersection(nums1 []int, nums2 []int) []int {
// 先将两个数组各自去重用Set存起来,然后找出两个Set中都存在的元素即可
var res []int
set := make(map[int]struct{})
set2 := make(map[int]struct{})
for _,num := range nums1 {
set[num] = struct{}{}
}
for _,num := range nums2 {
set2[num] = struct{}{}
}
for key := range set {
if _,ok := set2[key];ok {
res = append(res,key)
}
}
return res
}