《劍指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]
-
算法說明:
重要的是學會架構使用,算法不難,祝好運!