题解 | #合并表记录#

合并表记录

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

package main

import (
	"fmt"
	"sort"
)

func main() {
	var n int
	if _, err := fmt.Scan(&n); err != nil {
		fmt.Printf("input n err:%v", err)
		return
	}

	var indexSli = make([]int, n)
	var valueSli = make([]int, n)
	for i := 0; i < n; i++ {
		if _, err := fmt.Scan(&indexSli[i], &valueSli[i]); err != nil {
			fmt.Printf("input index && value err:%v", err)
			return
		}
	}

	var indexMap = make(map[int]int)
	var distinctSli = make([]int, 0)
	for i := 0; i < n; i++ {
		if _, ok := indexMap[indexSli[i]]; ok {
			indexMap[indexSli[i]] += valueSli[i]
		} else {
			indexMap[indexSli[i]] = valueSli[i]
			distinctSli = append(distinctSli, indexSli[i])
		}
	}

	sort.Ints(distinctSli)

	for _, newIndex := range distinctSli {
		fmt.Printf("%d %d\n", newIndex, indexMap[newIndex])
	}
}

全部评论

相关推荐

仁者伍敌:服务员还要脱颖而出,这是五星级酒店吗
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务