2 回答

TA貢獻1757條經驗 獲得超7個贊
您可以循環訪問數據并寫入地圖(如果地圖不是重復的)。并附加到重復切片(如果地圖中已存在)。示例代碼如下所示。
注意:如果您有多個具有相同值的重復項,則此代碼將顯示所有多個重復項。如果您需要查看一次相同的重復值,則應更改此值
package main
import (
"fmt"
)
func main() {
data := []int{1,2,4,5,6,4}
findDuplicates(data)
}
func findDuplicates(data []int) {
values := make(map[int]struct{})
var duplicates []int
for _, d := range data {
if _, ok := values[d]; ok {
duplicates = append(duplicates, d)
continue
}
values[d] = struct{}{}
}
fmt.Println(duplicates) // Output: [4]
}
帶游樂場

TA貢獻1891條經驗 獲得超3個贊
您正在尋找地圖
用法示例:
func findDuplicate(data []int) {
uniq := map[int]bool{}
for _, i := range data {
if uniq[i] {
fmt.Printf("found duplicate %v", i)
}
uniq[i] = true
}
}
用法示例:
func findDuplicate(data []int) {
uniq := map[int]bool{}
for _, i := range data {
if uniq[i] {
fmt.Printf("found duplicate %v", i)
}
uniq[i] = true
}
}
- 2 回答
- 0 關注
- 129 瀏覽
添加回答
舉報