1 Star 0 Fork 0

余济舟/aid

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
manifold.go 1.19 KB
一键复制 编辑 原始数据 按行查看 历史
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
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/jericho-yu/aid.git
git@gitee.com:jericho-yu/aid.git
jericho-yu
aid
aid
v1.35.20

搜索帮助