wmj-test/src/utils/algorithm_utils.go

32 lines
466 B
Go

package utils
func Difference[T any](a, b []T, com func(T, T) bool) []T {
var ans []T
for _, x := range a {
unique := true
for _, y := range b {
if com(x, y) {
unique = false
break
}
}
if unique {
ans = append(ans, x)
}
}
return ans
}
func Intersect[T any](a, b []T, com func(T, T) bool) []T {
var ans []T
for _, x := range a {
for _, y := range b {
if com(x, y) {
ans = append(ans, x)
break
}
}
}
return ans
}