牛客題霸 隨時找到資料流的中位數 c 版答案

2021-10-25 09:31:54 字數 901 閱讀 5246

資料流的中位數

有乙個源源不斷的吐出整數的資料流,假設你有足夠的空間來儲存吐出的數。請設計乙個名叫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的過程,其時間複雜度...