LeetCode350.两个数组的交集2Golang版
1. 问题描述
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2,2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[4,9]
2. 思路
- 初始化一个map[int]int,统计nums1数组中的元素个数。
- 遍历nums1数组。
- 遍历nums2数组,判断nums2中元素是否在map中,如果在,把map值-1,同时追加元素到预先分配的数组中。
3. 代码
func intersect(nums1 []int, nums2 []int) []int {
counterNums1 := map[int]int{}
res := []int{}
for i := 0; i < len(nums1); i++ {
counterNums1[nums1[i]]++
}
for j := 0; j < len(nums2); j++ {
value ,ok := counterNums1[nums2[j]]
if ok && value > 0 {
counterNums1[nums2[j]]--
res = append(res,nums2[j])
}
}
return res
}
该博客介绍了如何使用Go语言解决LeetCode第350题,即找出两个数组的交集。通过创建一个映射统计第一个数组的元素出现次数,然后遍历第二个数组,检查元素是否存在于映射中且计数大于0,将交集元素添加到结果数组中。
301

被折叠的 条评论
为什么被折叠?



