实现一个表记录合并
示例输入:
3
0 5
1 3
1 2
先输入键值对的个数n(1 <= n <= 500)
接下来n行每行输入成对的index和value值,以空格隔开
示例输出:
0 5
1 5
输出合并后的键值对(多行)
使用python下的dict(C++/C中可以使用map/unordered_map达到相似的效果)对相同索引下的记录数字进行相加后输出。
时间复杂度:O(Nlog(N))O(Nlog(N))O(Nlog(N)),解释:需要对所有输入的操作进行处理,时间复杂度O(N)O(N)O(N),排序时间复杂度O(Nlog(N))O(Nlog(N))O(Nlog(N))。
空间复杂度:O(N)O(N)O(N),解释:需要O(N)O(N)O(N)个字典存储输入的数据。
n = int(input())
record = {} #python里的map更加方便
for i in range(n):
line = input().split()
idx = int(line[0]) #当前记录的索引值
value = int(line[1]) #当前记录的数值
record[idx] = record.get(idx,0)+value #将record中对应索引值的原有累积value加上当前记录的value
for idx in sorted(record): #对记录表进行排序并输出
print(idx, record[idx])



