leetcode之350两个数组的交集Golang
-
数组中元素是可以重复的
-
如果重复的元素是交集中的元素,那么在交集中要有这些元素
算法
-
创建一个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
}
浙公网安备 33010602011771号