解题思路
- 1.将索引和值入hash,map[key] = value
- 2.遍历key到slice,并对slice进行排序(go对slice进行排序需要用到匿名函数)
- 3.遍历slice按要求格式输出
- 类比 统计出现频率在前k个单词
package main
import(
"fmt"
"sort"
)
func main(){
var num int
fmt.Scan(&num)
kvmap := make(map[int]int)
sortlice := make([]int,0)
// 1. k,v入hash表
for i:=0;i < num;i++{
var key,value int
fmt.Scan(&key,&value)
kvmap[key] += value
}
// 2.取出key放置在slice中用于排序
for key := range kvmap{
sortlice = append(sortlice,key)
}
// 3.对slice进行排序
sort.Slice(sortlice,func(i, j int) bool {
return sortlice[i] < sortlice[j]
})
// 4.根据key获取value,并按条件输出
for _,v := range sortlice{
fmt.Println(v,kvmap[v])
}
}