天天看點

《劍指Offer》刷題之資料流中的中位數

《劍指Offer》刷題之資料流中的中位數

我不知道将去向何方,但我已在路上!
時光匆匆,雖未曾謀面,卻相遇于斯,實在是莫大的緣分,感謝您的到訪 !
  • 題目:

    如何得到一個資料流中的中位數?如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位于中間的數值。如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。我們使用Insert()方法讀取資料流,使用GetMedian()方法擷取目前讀取資料的中位數。

  • 代碼1:
# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.result = []
    def Insert(self, num):
        self.result.append(num)
        self.result.sort()
    def GetMedian(self):
        temp = len(self.result)
        if temp % 2 == 0:
            return (self.result[temp//2] + self.result[temp//2-1]) / 2.0
        return self.result[temp // 2]
           
  • 算法說明:

    重要的是學會架構使用,算法不難,祝好運!