資料流的中位數
有乙個源源不斷的吐出整數的資料流,假設你有足夠的空間來儲存吐出的數。請設計乙個名叫medianholder的結構,medianholder可以隨時取得之前吐出所有數的中位數。
[要求]
如果medianholder已經儲存了吐出的n個數,那麼將乙個新數加入到medianholder的過程,其時間複雜度是o(logn)。
取得已經吐出的n個數整體的中位數的過程,時間複雜度為o(1)
每行有乙個整數opt表示操作型別
若opt=1,則接下來有乙個整數n表示將n加入到結構中。
若opt=2,則表示詢問當前所有數的中位數
示例1輸入
複製[[1,5],[2],[1,3],[2],[1,6],[2],[1,7],[2]]
返回值複製
[5,4,5,5.5]
說明第一次查詢時結構內的數為:5
第二次查詢時結構內的數為:3 5
第二次查詢時結構內的數為:3 5 6
第二次查詢時結構內的數為:3 5 6 7
示例2輸入
複製[[2],[1,1],[2]]
返回值複製
[-1,1]
class
solution
return res;
}void
addnum
(int num)
}double
findmedian()
};
class
solution
return res;
}void
addnum
(int num)
}double
findmedian()
}};
隨時找到資料流的中位數
題目 有乙個源源不斷地吐出整數的資料流,假設你有足夠的空間來儲存吐出的數。請設計乙個名叫medianholder的結構,medianholder可以隨時取得之前吐出所有數的中位數。要求 1 如果medianholder已經儲存了吐出的n個數,那麼任意時刻將乙個新數加入到medianholder的過程...
隨時找到資料流的中位數
題目描述 有乙個源源不斷地吐出整數的資料流,假設你有足夠的空間來儲存吐出的數。請設計乙個名叫medianholder的結構,medianholder可以隨時取得之前吐出所有數的中位數。要求 方法方法1 我們收集到資料之後排序,這樣的時間複雜度就是排序的時間複雜度最好也是o nlogn 無法滿足要求 ...
隨時找到資料流的中位數
有乙個源源不斷的吐出整數的資料流,假設你有足夠的空間來儲存吐出的數。請設計乙個名叫medianholder的結構,medianholder可以隨時取得之前吐出所有數的中位數。要求 1.如果medianholder已經儲存了吐出的n個數,那麼將乙個新數加入到medianholder的過程,其時間複雜度...