代码拉取完成,页面将自动刷新
package operation
// GetIntersection 获取两个数组的交集
func GetIntersection[T comparable](setA, setB []T) (intersection []T) {
elementMap := make(map[T]bool)
// 将 setB 的元素存入 map
for _, b := range setB {
elementMap[b] = true
}
// 遍历 setA,检查是否在 setB 中
for _, a := range setA {
if elementMap[a] {
intersection = append(intersection, a)
}
}
return
}
// GetUnion 获取两个数组的并集
func GetUnion[T comparable](setA, setB []T) (union []T) {
elementMap := make(map[T]bool)
// 将 setA 的元素存入 map
for _, a := range setA {
if !elementMap[a] {
union = append(union, a)
elementMap[a] = true
}
}
// 将 setB 的元素存入 map
for _, b := range setB {
if !elementMap[b] {
union = append(union, b)
elementMap[b] = true
}
}
return
}
// GetDifference 获取两个数组的差集
func GetDifference[T comparable](setA, setB []T) (difference []T) {
elementMap := make(map[T]bool)
// 将 setB 的元素存入 map
for _, b := range setB {
elementMap[b] = true
}
// 遍历 setA,检查是否不在 setB 中
for _, a := range setA {
if !elementMap[a] {
difference = append(difference, a)
}
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。