349. 两个数组的交集

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

20200818193523911

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func intersection(arr1 []int, arr2 []int) []int {
set := make(map[int]struct{})
var res []int
for _, v := range arr1 {
set[v] = struct{}{}
}
for _, v := range arr2 {
// 如果存在上一个数组,则加入结果集,并清空该set值
if _, ok := set[v]; ok {
res = append(res, v)
delete(set, v)
}
}
return res
}