中央値のデータ・ストリーム - オフ牛

タイトルは説明し
たデータストリームの中央値を取得する方法?数値が奇数データストリームから読み込まれた場合、中央値は、ソート後のすべての値の中央に位置しています。偶数値は、データストリームから読み出された場合、中央値は、注文の全ての中間値の後に2つの数の平均値です。私たちは、読み込まれ、現在の中央値のデータを取得するためにGetMedian()メソッドを使用して、データ・ストリームを読み取るために挿入()メソッドを使用します。
溶液:
1、ベクトル配列宣言
インサート機能一back NUMアレイ内の各ベクトルに2、
3、配列の長さは、2つの中間の平均のそれ以外の場合は出力値を中間出力の奇数値を算出します

class Solution {
    vector<int> array;
public:
    void Insert(int num)
    {
        array.push_back(num);
    }

    double GetMedian()
    { 
        sort(array.begin(), array.end());
        int length = array.size();
        if (length%2==0)
            return double((array[length/2]+array[length/2-1]))/2;
        else
            return double(array[length/2]);
    }
};
公開された315元の記事 ウォンの賞賛119 ビュー110 000 +

おすすめ

転載: blog.csdn.net/w144215160044/article/details/105004975