数组中元素是可以重复的
如果重复的元素是交集中的元素,那么在交集中要有这些元素
创建一个map[int]int
遍历数组1中所有的元素,将他们存在上面的map中,map的键就是元素的值,map的值就是该元素出现的次数
遍历第二个数组的元素,如果该元素在map中的值大于1,就将这个元素存入结果数组中,并将map中的值减1
func intersect(nums1 []int, nums2 []int) []int { var resArr []int nums1Map := make(map[int]int) for _, value := range nums1 { nums1Map[value]++ } for _, value := range nums2 { if nums1Map[value] > 0 { nums1Map[value]-- resArr = append(resArr, value) } } return resArr }
原文:https://www.cnblogs.com/gyyyl/p/13666156.html