解题思路

  • 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])
    }
}