Golang

建立一個數組的map, loop 一次 nums1 把數組內的每個數都註冊到 m 裡面並紀錄出現的次數

接下來 loop nums2 並用 value 去 看這個值在 map 裡面的有沒有存在和確定 出現次數是不是 > 0 並且把 map 裡面的 val減少一個

func intersect(nums1 []int, nums2 []int) []int {
  m := make(map[int]int)
  for _, v := range nums1 {
    if _,ok := m[v]; ok {
      m[v]++
    } else {
      m[v] = 1
    }
  }
  
  ret := []int{}
  
  for _, v := range nums2 {
    if val, ok := m[v]; val > 0 && ok {
      ret  = append(ret, v)
      m[v]--
    }
  }
  return ret
}