R7-堆篇
from heapq import *
class MedianFinder:
def __init__(self):
#建立小根堆,保存大的一半
self.A=[]
#大根堆,B中的存储都是负数形式
self.B=[]
def addNum(self, num: int) -> None:
if len(self.A)!=len(self.B):
heappush(self.B,-heappushpop(self.A,num))
else:
heappush(self.A,-heappushpop(self.B,-num))
def findMedian(self) -> float:
return self.A[0] if len(self.A)!=len(self.B) else(self.A[0]-self.B[0])/2.0
# Your MedianFinder object will be instantiated and called as such:
# obj = MedianFinder()
# obj.addNum(num)
# param_2 = obj.findMedian()
精简的代码总是难以琢磨。。。