heap的使用——合并K个排序间隔列表,和merge K个有序数组是一样的
577. 合并K个排序间隔列表
中文
English
将K个排序的间隔列表合并到一个排序的间隔列表中,你需要合并重叠的间隔。
样例
样例1
输入: [
[(1,3),(4,7),(6,8)],
[(1,2),(9,10)]
]
输出: [(1,3),(4,8),(9,10)]
样例2
输入: [
[(1,2),(5,6)],
[(3,4),(7,8)]
]
输出: [(1,2),(3,4),(5,6),(7,8)]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | """ Definition of Interval. class Interval(object): def __init__(self, start, end): self.start = start self.end = end """ import heapq class Solution: """ @param intervals: the given k sorted interval lists @return: the new sorted interval list """ def mergeKSortedIntervalLists( self , intervals): # write your code here def append(arr, l, r): if not arr: arr.append(Interval(l, r)) return if arr[ - 1 ].start < = l < = arr[ - 1 ].end: arr[ - 1 ].end = max (r, arr[ - 1 ].end) else : arr.append(Interval(l, r)) q = [] for i,arr in enumerate (intervals): if arr: heapq.heappush(q, (intervals[i][ 0 ].start, intervals[i][ 0 ].end, i, 0 )) ans = [] while q: l, r, i, j = heapq.heappop(q) append(ans, l, r) if j + 1 < len (intervals[i]): heapq.heappush(q, (intervals[i][j + 1 ].start, intervals[i][j + 1 ].end, i, j + 1 )) return ans |
标签:
算法
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 基于DeepSeek R1 满血版大模型的个人知识库,回答都源自对你专属文件的深度学习。
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· Tinyfox 简易教程-1:Hello World!
2019-01-22 使用深度学习检测TOR流量——本质上是在利用报文的时序信息、传输速率建模
2019-01-22 利用神经网络进行网络流量识别——特征提取的方法是(1)直接原始报文提取前24字节,24个报文组成596像素图像CNN识别;或者直接去掉header后payload的前1024字节(2)传输报文的大小分布特征;也有加入时序结合LSTM后的CNN综合模型
2018-01-22 学界| UC Berkeley提出新型分布式框架Ray:实时动态学习的开端—— AI 应用的系统需求:支持(a)异质、并行计算,(b)动态任务图,(c)高吞吐量和低延迟的调度,以及(d)透明的容错性。
2018-01-22 Amazon宣布将MXNet作为AWS的深度学习框架——貌似性能比tf高啊
2018-01-22 详解Google第二代TPU 既能推理又能训练 性能霸道
2018-01-22 Intel 的 MKL是可以用来训练的——官方的实验也提到了训练
2017-01-22 levelDB, TokuDB, BDB等kv存储引擎性能对比——wiredtree, wiredLSM,LMDB读写很强啊