中位數是有序列表中間的數。如果列表長度是偶數,中位數則是中間兩個數的平均值。
例如,[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
用乙個動態陣列,採用插入排序的思想。可依序遍歷,也可二分查詢插入位置。
然後根據陣列中元素的奇偶數輸出中位數。詳細過程見**
class
medianfinder
void
addnum
(int num)
list.
insert
(list.
begin()
+i,num)
; size++;}
double
findmedian()
};/** * your medianfinder object will be instantiated and called as such:
* medianfinder* obj = new medianfinder();
* obj->addnum(num);
* double param_2 = obj->findmedian();
*/
LeetCode 295 資料流的中位數
中位數是有序列表中間的數。如果列表長度是偶數,中位數則是中間兩個數的平均值。例如,2,3,4 的中位數是 3 2,3 的中位數是 2 3 2 2.5 設計乙個支援以下兩種操作的資料結構 示例 addnum 1 addnum 2 findmedian 1.5 addnum 3 findmedian 2...
LeetCode 295 資料流的中位數
中位數是有序列表中間的數。如果列表長度是偶數,中位數則是中間兩個數的平均值。例如,2,3,4 的中位數是 3 2,3 的中位數是 2 3 2 2.5 設計乙個支援以下兩種操作的資料結構 void addnum int num 從資料流中新增乙個整數到資料結構中。double findmedian 返...
LeetCode 295 資料流的中位數
中位數是有序列表中間的數。如果列表長度是偶數,中位數則是中間兩個數的平均值。例如,2,3,4 的中位數是 3 2,3 的中位數是 2 3 2 2.5 設計乙個支援以下兩種操作的資料結構 void addnum int num 從資料流中新增乙個整數到資料結構中。double findmedian 返...