編寫一個 function 獲取兩個數值數組的交集,交集中數值唯一。
原題
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.
分析
- 數值唯一
- 順序隨意
實現
1func intersection(nums1 []int, nums2 []int) []int {
2 m := make(map[int]bool)
3 for _, num := range nums1 {
4 m[num] = true
5 }
6
7 var v []int
8 for _, num := range nums2 {
9 if m[num] {
10 v = append(v, num)
11 delete(m, num)
12 }
13 }
14
15 return v
16}