题解 | #合并表记录#

合并表记录

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

要点

选择合适的数据结构!
map/数组/哈希表

mark一下他人回答思路

这题的重点在于查找时间和存储空间的处理即数据结构的选取。
到底是map还是数组还是哈希表可以根据key的范围以及key-value对的个数选取
1:如果key取值范围小,那么数组是最合适的。但本题不适合,因为并没有给出key的范围,如果key很大如Integer.MAX-1,那么直接开一个这么大的数组会崩的
2:如果key的取值范围很大,但是key的个数少,那么哈希表比较合适
3:如果key的取值范围很大而且key的个数很多,那么tree是比较合适的。本题目适合tree。

my code(但是性能很差

N = int(input())
table = {}
for i in range(N):
    key, value = map(int, input().split(' '))
    if key in table:
        table[key] += value
    else:
        table[key] = value
for i in sorted(table.keys()): # 按键排序,返回列表
    print(i, table[i])
全部评论

相关推荐

像好涩一样好学:这公司我也拿过 基本明确周六加班 工资还凑活 另外下次镜头往上点儿
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务