350. 两个数组的交集 II

image.png

  1. package main
  2. import "fmt"
  3. func intersect(nums1 []int, nums2 []int) []int {
  4. m1 :=make(map[int]int)
  5. for _,v:=range nums1{
  6. m1[v]++
  7. }
  8. m2 :=make(map[int]int)
  9. for _,v:=range nums2{
  10. m2[v]++
  11. }
  12. var res[]int
  13. for k,v :=range m1{
  14. r := m2[k]
  15. r = min(v,r)
  16. for i:=0;i<r;i++{
  17. res =append(res,k)
  18. }
  19. }
  20. return res
  21. }
  22. func min(a,b int)int {
  23. if a<b{
  24. return a
  25. }
  26. return b
  27. }
  28. func main() {
  29. fmt.Println(intersect([]int{1,2,2,1},[]int{2,2}))
  30. fmt.Println(intersect([]int{4,9,5},[]int{9,4,9,8,4}))
  31. }

image.png