Hot-295 数据流的中位数
解法使用 大根堆 小根堆 同时保证两者数量差1import heapq class MedianFinder: def __init__(self): # 大根堆 self.left [] # 小根堆 self.right [] def addNum(self, num: int) - None: heapq.heappush(self.left,-num) # 把left的最大值给到right heapq.heappush(self.right,-heapq.heappop(self.left)) # 如果right的数量过多平衡 if len(self.right) len(self.left): heapq.heappush(self.left,-heapq.heappop(self.right)) def findMedian(self) - float: if len(self.right) len(self.left): return (self.right[0] - self.left[0]) / 2 else: return -self.left[0]