栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

利用python中的字典进行模拟求解 (哈希表)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

利用python中的字典进行模拟求解 (哈希表)

实现一个表记录合并

示例输入:
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])

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853439.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号