数组交集、新增减少
// 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
}