This commit is contained in:
2025-04-01 17:57:35 +08:00
parent 7857015405
commit a5caa734c3
36 changed files with 1503 additions and 318 deletions

View File

@@ -0,0 +1,31 @@
package sliceutil
import "sort"
// 使用 map 去除重复元素
func RemoveDuplicatesWithMap[T comparable](slice []T) []T {
result := make([]T, 0, len(slice))
seen := make(map[T]bool)
for _, v := range slice {
if _, ok := seen[v]; !ok {
seen[v] = true
result = append(result, v)
}
}
return result
}
// 先排序再去重
func RemoveDuplicatesWithSort(slice []int) []int {
if len(slice) == 0 {
return slice
}
sort.Ints(slice)
result := []int{slice[0]}
for i := 1; i < len(slice); i++ {
if slice[i] != slice[i-1] {
result = append(result, slice[i])
}
}
return result
}