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 关注
- 147 浏览
添加回答
举报