数据流的中位数
數據流的中位數
- 如題所示:
- 思路
- 源代碼如下:
如題所示:
如何得到一個數據流中的中位數?如果從數據流中讀出奇數個數值,那么中位數就是所有數值排序之后位于中間的數值。如果從數據流中讀出偶數個數值,那么中位數就是所有數值排序之后中間兩個數的平均值
思路
使用2個堆,每個堆保存一半的元素。最大堆保存較小一半的數,最小堆保存較大一半的數,使用一個變量判斷當前讀入元素的個數,根據元素個數的奇偶來求中位數
源代碼如下:
class Solution { public:void Insert(int num){if(index % 2 == 0){if總結
- 上一篇: 数组中只出现1次的2个数
- 下一篇: 和为s的两个数字