数组交集、新增减少

本文介绍了一个用Go语言编写的函数,用于计算两个整数数组nums1和nums2的交集,同时找出nums2中在nums1中不存在的新增元素和nums1中不再存在的删除元素。
摘要由CSDN通过智能技术生成

数组交集、新增减少


// nums2相较于nums1,删掉和增加的数字
func intersection(nums1 []int, nums2 []int) (intersection, deleted, added []int) {
	set1 := map[int]struct{}{}
	for _, v := range nums1 {
		set1[v] = struct{}{}
	}
	set2 := map[int]struct{}{}
	for _, v := range nums2 {
		set2[v] = struct{}{}
		if _, has := set1[v]; !has {
			added = append(added, v)
		}
	}
	for v := range set1 {
		if _, has := set2[v]; has {
			intersection = append(intersection, v)
		} else {
			deleted = append(deleted, v)
		}
	}

	return
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值