劍指offer 資料流中的中位數

2021-08-19 19:41:35 字數 456 閱讀 9096

題目描述:

如何得到乙個資料流中的中位數?如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。

實現:

public class getmediannum

listnode in=new listnode(num);

listnode p=head;

while(p.next!=null && p.next.valm1.val)

else

m2=t;}}

else

else{

if(num>m2.val && num指標操作比較複雜,用乙個鍊錶儲存輸入的資料,插入時比順序表好操作一點,指標m1和m2是指向中間的指標,以方便讀取中位數,但是維護這兩個指標有一點麻煩。

劍指Offer 資料流中的中位數

題目描述 如何得到乙個資料流中的中位數?如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。思路整理 這個題目要解出來很簡單,但是這裡有乙個比較好的思路 用最大和最小堆來實現,就像乙個沙漏一樣,上...

劍指offer 資料流中的中位數

如何得到乙個資料流中的中位數?如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。我們使用insert 方法讀取資料流,使用getmedian 方法獲取當前讀取資料的中位數。資料流中的資料需要用合...

劍指offer 資料流中的中位數

題意 每次輸入乙個數字,輸出當前資料流的中位數。我也給出了main函式,含義就是類似的就是main函式中的例子。include 記住這句話,能夠包含所有標頭檔案 using namespace std class solution if p.top num else if p.size 2 q.si...