首页 > 编程语言 > 详细

leetcode之350两个数组的交集Golang

时间:2020-09-14 14:02:25      阅读:76      评论:0      收藏:0      [点我收藏+]

解析

  • 数组中元素是可以重复的

  • 如果重复的元素是交集中的元素,那么在交集中要有这些元素

算法

  • 创建一个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
}

  

 

 

leetcode之350两个数组的交集Golang

原文:https://www.cnblogs.com/gyyyl/p/13666156.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!