欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python--剑指offer--困难--41. 数据流中的中位数

程序员文章站 2024-02-13 14:00:04
...

python--剑指offer--困难--41. 数据流中的中位数
python--剑指offer--困难--41. 数据流中的中位数
python--剑指offer--困难--41. 数据流中的中位数
python--剑指offer--困难--41. 数据流中的中位数
python--剑指offer--困难--41. 数据流中的中位数
python--剑指offer--困难--41. 数据流中的中位数

from heapq import *


class MedianFinder:

    def __init__(self):
        self.A = []  # 小根堆,存放较大的一半
        self.B = []  # 大根堆,存放较小的一半

    def addNum(self, num: int) -> None:
        if len(self.A) != len(self.B):
            heappush(self.A, num)
            heappush(self.B, -heappop(self.A))
        else:
            heappush(self.B, -num)
            heappush(self.A, -heappop(self.B))

    def findMedian(self) -> float:
        return self.A[0] if len(self.A) != len(self.B) else (self.A[0] - self.B[0]) / 2

python--剑指offer--困难--41. 数据流中的中位数

from heapq import *

class MedianFinder:
    def __init__(self):
        self.A = [] # 小顶堆,保存较大的一半
        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

上一篇: 870. Advantage Shuffle

下一篇: