题解 | #合并表记录#

合并表记录

https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201

package main

import (
	"fmt"
	"sort"
)

func main() {
	// 处理输入
	var n, key, val int
	fmt.Scan(&n)
	// 哈希表记录
	m := make(map[int]int, n)
    // 将输入记录到哈希表
	for i := 0; i < n; i++ {
		fmt.Scan(&key)
		fmt.Scan(&val)
		// if _, ok := m[key]; ok {
		m[key] += val
		// }
		// m[key] = val
	}
    // 从哈希表取数据输出,利用数组将结果index顺序排好,否则是乱序(因为map本来就是无序)
    arr := make([]int, 0)
    // 将index存入数组
	for k := range m {
		if m[k] == 0 {
			continue
		}
        arr = append(arr, k)
	}
    // 排序
    sort.Ints(arr)
    // 输出结果
    for _, v := range arr {
		fmt.Printf("%d %d\n", v, m[v])
    }
}

#golang#
全部评论

相关推荐

05-08 23:17
门头沟学院 Java
自由水:笑死了,敢这么面试不敢让别人说
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务