golang 用map和切片 中找出互不相同的元素
1.介绍
通过用map和切片 来找出 N 个随机数
话不多说 直接上代码
2.代码
func text(n int) []int {
var arr = make([]int, 0, 10)
for i := 0; i < n; i++ {
arr = append(arr, rand.Intn(128)) //循环n个随机数进去
}
return arr
}
func count(arr []int) int {
m := make(map[int]bool, len(arr))
for _, ele := range arr { //循环arr 用 ele 做map的小标
m[ele] = true //如果重复赋值就 不会对map有印象
}
return len(m)//然后统计map的个数 ,从而统计不同的个数
}
func main() {
var arr = text(100)
var cnt = count(arr)
fmt.Println(cnt)
}
3.解释
text 函数用切片获取N个随机数
count 用于计数
原理 1通过对arr遍历
2在map中key中写入arr的值 value中写入 bool
3如果是重复的值就会抵消
4计数