Golang程序 寻找一个数组中每个元素的频率
例子
输入数组 = [1, 3, 4, 3, 2, 3, 4, 0, 2]
元素
1
3
4
2
0
频率
1
3
2
2
1
解决这个问题的方法
- 第1步: 定义一个方法,接受一个数组。
- 第2步: 定义一个map,其中key是数组的元素,起始值是0。
- 第3步: 开始迭代输入数组。如果一个元素存在于map中,那么就增加计数。
- 第4步: 如果该元素不在地图中,则存储在地图中,并使其值为1。
程序
package main
import (
"fmt"
)
func findFrequencyOfArray(arr []int){
frequency := make(map[int]int)
for _, item := range arr{
if frequency[item] == 0{
frequency[item] = 1
} else {
frequency[item]++
}
}
for item, count := range frequency{
fmt.Printf("%d occurring %d times.\n", item, count)
}
}
func main(){
findFrequencyOfArray([]int{2, 2, 5, 1, 3, 5, 0})
}
输出
2 occurring 2 times.
5 occurring 2 times.
1 occurring 1 times.
3 occurring 1 times.
0 occurring 1 times.