zoukankan      html  css  js  c++  java
  • go 两个数组取并集

    实际生产中,对不同数组取交集、并集、差集等场景很常用,下面来说下两个数组取差集

    直接上代码:

    //两个集合取并集
    
    package main
    
    import "fmt"
    
    //思想:
    //运用map,统计nums1中值出现的次数-map[值]次数
    //遍历nums2中的值,查看值是否在map中的出现
    
    func intersect(nums1 []string, nums2 []string) []string {
        m := make(map[string]int)
    
        for _,v := range nums1 {
            m[v]++
        }
        fmt.Println(m)
    
        for _,v := range nums2 {
    
             times, _ := m[v]  //v是nums2中的值,m[v]是map中的值.m[v]==times
             fmt.Printf("1................@@@@@@@@@@@@@@..v=%d,times=%d
    ",v,times)
            
             if times == 0{
                    nums1 = append(nums1, v)
            }
        }
        return nums1
    }
    
    func main() {
        a1 := []string{"3","4","1"}
        a2 := []string{"2","1","3"}
        fmt.Println(intersect(a1,a2))
    }



    运行结果如下:

    即获得到两个slice的并集。

  • 相关阅读:
    迷宫寻宝(自编简单版)
    推荐一个免费翻译接口
    nyoj 82
    poj 3984
    Suffix Tree(后缀树)
    python turtle模块绘图
    python continue语句
    python break语句
    pycharm永久破解激活码
    python while死循环
  • 原文地址:https://www.cnblogs.com/unqiang/p/11201127.html
Copyright © 2011-2022 走看看