go 求数组的并集、交集、差集

集合的分类:
并集:以属于A或属于B的元素为元素的集合成为A与B的并(集)
交集: 以属于A且属于B的元素为元素的集合成为A与B的交(集)
差集:以属于A而不属于B的元素为元素的集合成为A与B的差(集)

package main

import "fmt"

//求并集
func union(slice1, slice2 []string) []string {
	m := make(map[string]int)
	for _, v := range slice1 {
		m[v]++
	}

	for _, v := range slice2 {
		times, _ := m[v]
		if times == 0 {
			slice1 = append(slice1, v)
		}
	}
	return slice1
}

//求交集
func intersect(slice1, slice2 []string) []string {
	m := make(map[string]int)
	nn := make([]string, 0)
	for _, v := range slice1 {
		m[v]++
	}

	for _, v := range slice2 {
		times, _ := m[v]
		if times == 1 {
			nn = append(nn, v)
		}
	}
	return nn
}

//求差集 slice1-并集
func difference(slice1, slice2 []string) []string {
	m := make(map[string]int)
	nn := make([]string, 0)
	inter := intersect(slice1, slice2)
	for _, v := range inter {
		m[v]++
	}

	for _, value := range slice1 {
		times, _ := m[value]
		if times == 0 {
			nn = append(nn, value)
		}
	}
	return nn
}

func main() {
	slice1 := []string{"1", "2", "3", "6", "8"}
	slice2 := []string{"2", "3", "5", "0"}
	un := union(slice1, slice2)
	fmt.Println("slice1与slice2的并集为:", un)
	in := intersect(slice1, slice2)
	fmt.Println("slice1与slice2的交集为:", in)
	di := difference(slice1, slice2)
	fmt.Println("slice1与slice2的差集为:", di)
}

结果:

js数组并集交集差集是指根据给定的两个或多个数组进行计算得出的不同结果。 数组并集是指将两个或多个数组合并在一起,去除重复的元素,得到一个包含所有数组元素的新数组。 例如,有两个数组arr1 = [1, 2, 3]和arr2 = [2, 3, 4],则它们的并集为[1, 2, 3, 4]。 在JavaScript中,可以使用concat()方法和Set对象实现数组并集。具体实现代码如下: ```javascript var arr1 = [1, 2, 3]; var arr2 = [2, 3, 4]; var union = Array.from(new Set(arr1.concat(arr2))); console.log(union); // [1, 2, 3, 4] ``` 数组交集是指找出两个或多个数组中共同包含的元素,得到一个新数组。 例如,有两个数组arr1 = [1, 2, 3]和arr2 = [2, 3, 4],则它们的交集为[2, 3]。 在JavaScript中,可以使用filter()方法和includes()方法实现数组交集。具体实现代码如下: ```javascript var arr1 = [1, 2, 3]; var arr2 = [2, 3, 4]; var intersection = arr1.filter(num => arr2.includes(num)); console.log(intersection); // [2, 3] ``` 数组差集是指找出一个数组相对于另一个数组的不同元素,得到一个新数组。 例如,有两个数组arr1 = [1, 2, 3]和arr2 = [2, 3, 4],则arr1相对于arr2的差集为[1]。 在JavaScript中,可以使用filter()方法和includes()方法实现数组差集。具体实现代码如下: ```javascript var arr1 = [1, 2, 3]; var arr2 = [2, 3, 4]; var difference = arr1.filter(num => !arr2.includes(num)); console.log(difference); // [1] ``` 这就是JavaScript中数组并集交集差集的简单实现方法。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值