8.15 - hard - 54

295. Find Median from Data Stream

兩個(gè)heap解決問(wèn)題,比f(wàn)ind window median要容易些

class MedianFinder(object):

    def __init__(self):
        """
        initialize your data structure here.
        """
        self.left = []
        self.right = []
        

    def addNum(self, num):
        """
        :type num: int
        :rtype: void
        """
        right = self.right
        left = self.left
        if not left or num <= -left[0]:
            heapq.heappush(left, -num)
        else:
            heapq.heappush(right, num)
        self.balance(left, right)

    def findMedian(self):
        """
        :rtype: float
        """
        right = self.right
        left = self.left
        if len(left) == len(right):
            return (right[0] - left[0])*1.0/2
        else:
            return -left[0]
    
    def balance(self, left, right):
        if len(right) > len(left):
            val = heapq.heappop(right)
            heapq.heappush(left, -val)
        elif len(left) - 1 > len(right):
            val = heapq.heappop(left)
            heapq.heappush(right, -val)
        
        


# Your MedianFinder object will be instantiated and called as such:
# obj = MedianFinder()
# obj.addNum(num)
# param_2 = obj.findMedian()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,766評(píng)論 0 33
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,739評(píng)論 18 399
  • 5月27買了beats耳機(jī),7月23日按鍵不靈了,拿去益田假日蘋果直營(yíng)店修,客服說(shuō)因?yàn)槟銢](méi)預(yù)約,要等三個(gè)多小時(shí)才能...
    deepthinker閱讀 990評(píng)論 0 0
  • 11.29 雨夾雪 心情還好 今天是特種兵內(nèi)訓(xùn)的第十天,我學(xué)會(huì)了如何互推,老師教給了我們好多種互推...
    丹青_f038閱讀 201評(píng)論 0 0