from heapq import *
class MedianFinder:
def __init__(self):
"""
initialize your data structure here.
"""
self.a=[]#小根堆
self.b=[]
def addNum(self, num: int) -> None:
if len(self.a)==len(self.b):
heappush(self.b,-num)
heappush(self.a,-heappop(self.b))
else:
heappush(self.a,num)
heappush(self.b,-heappop(self.a))
def findMedian(self) -> float:
if len(self.a)==len(self.b): return (heappop(self.a)-heappop(self.b))/2
else: return heappop(self.a)
剑指 Offer 41. 数据流中的中位数语法题
最新推荐文章于 2021-02-22 15:52:28 发布
本文介绍了一种使用两个堆(小根堆和大根堆)的数据结构来维护一系列数字的中位数的方法。通过实时调整堆的平衡,可以高效地找到当前所有数值的中位数,适用于数据流处理等场景。

238

被折叠的 条评论
为什么被折叠?



