[Golang]力扣Leetcode - 349. 两个数组的交集(哈希表)
[Golang]力扣Leetcode - 349. 两个数组的交集(哈希表)
题目:给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
链接: 力扣Leetcode - 349. 两个数组的交集.
示例1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的
思路: 我的想法是,把 nums1 和 nums2 用哈希表 a 和 b 表示,然后再遍历 a 和 b,如果 a 中 key1 等于 key2,就把该 key 添加到输出 res 中,并且跳出该循环,这样好处是输出 res 不会出现重复的数。
Go代码:
package main import "fmt" func intersection(nums1 []int, nums2 []int) []int { // 用一个map来存储数字以及出现的次数 a := make(map[int]int) b := make(map[int]int) for _, v := range nums1 { a[v]++ } for _, v := range nums2 { b[v]++ } // 定义存储最后结果的数组 var res []int for k1 := range a { for k2 := range b { if k1 == k2 { res = append(res, k1) break } } } return res } func main() { nums1 := []int{1, 2, 2, 1} nums2 := []int{2, 2} fmt.Print(intersection(nums1, nums2)) }
提交截图:
本文作者:Dancing-Pierre
本文链接:https://www.cnblogs.com/wyc-1009/p/17548023.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步