中位數是有序列表中間的數。如果列表長度是偶數,中位數則是中間兩個數的平均值。例如,[2,3,4] 的中位數是 3
[2,3] 的中位數是 (2 + 3) / 2 = 2.5
設計乙個支援以下兩種操作的資料結構:
void addnum(int num) - 從資料流中新增乙個整數到資料結構中。
double findmedian() - 返回目前所有元素的中位數。
示例:addnum(1)
addnum(2)
findmedian() -> 1.5
addnum(3)
findmedian() -> 2
1.左邊乙個大頂堆,左邊乙個小頂堆,始終保持大頂堆比小頂堆多乙個元素或者相等
最後答案如果相等就是2數之和,否則就是最大頂堆根元素
class medianfinder:
def __init__(self):
self.left=
self.right=
def addnum(self, num: int) -> none:
if len(self.left)==len(self.right):
else:
def findmedian(self) -> float:
if len(self.left)==len(self.right):
return (self.right[0]-self.left[0])/2
else:
return -self.left[0]
295 資料流的中位數
中位數是有序列表中間的數。如果列表長度是偶數,中位數則是中間兩個數的平均值。例如,2,3,4 的中位數是 3 2,3 的中位數是 2 3 2 2.5 設計乙個支援以下兩種操作的資料結構 示例 addnum 1 addnum 2 findmedian 1.5 addnum 3 findmedian 2...
295 資料流的中位數
題目描述 中位數是有序列表中間的數。如果列表長度是偶數,中位數則是中間兩個數的平均值。例如,2,3,4 的中位數是 3 2,3 的中位數是 2 3 2 2.5 設計乙個支援以下兩種操作的資料結構 void addnum int num 從資料流中新增乙個整數到資料結構中。double findmed...
295 資料流的中位數 C
中位數是有序列表中間的數。如果列表長度是偶數,中位數則是中間兩個數的平均值。例如,2,3,4 的中位數是 3 2,3 的中位數是 2 3 2 2.5 設計乙個支援以下兩種操作的資料結構 void addnum int num 從資料流中新增乙個整數到資料結構中。double findmedian 返...