題目
Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].
Note:
- Each element in the result must be unique.
- The result can be in any order.
解題思路
- 將nums1中的元素放入map[int]bool中捻激,值初始化為false
- 遍歷nums2扣溺,map中存在的元素值置為true
- 遍歷map引矩,取出值為true的元素
注意
第三步遍歷map的目的是防止有多個(gè)重復(fù)的相交元素出現(xiàn)
代碼
intersection.go
package _349_Intersection_of_Two_Arrays
func intersection(nums1 []int, nums2 []int) []int {
var ret []int
var numMap map[int]bool
numMap = make(map[int]bool)
for _, v := range nums1 {
numMap[v] = false
}
for _, v := range nums2 {
_, ok := numMap[v]
if ok {
numMap[v] = true
}
}
for k, v := range numMap {
if v {
ret = append(ret, k)
}
}
return ret
}