剣指offer 63題:データストリームの中位数

3624 ワード

剣指offer 63題:データストリームの中位数
  • タイトル説明
  • データストリームの中央値
  • ソースコード
  • タイトルの説明
    データ・ストリームの中央値
    データ・ストリームの中位数を取得するにはどうすればいいですか?データストリームから奇数個の数値を読み出すと、中位数は、すべての数値がソートされた後に中間に位置する数値である.データストリームから偶数個の数値が読み出されると、中位数は、すべての数値が並べ替えられた後の中間の2つの数の平均値となります.Insert()メソッドを用いてデータストリームを読み出し,GetMedian()メソッドを用いて現在の読み出しデータの中位数を取得した.
    ソースコード
    
    vector<int> vec;
    class Solution {
    public:
        void Insert(int num)
        {
            vec.push_back(num);
        }
        double GetMedian()
        { 
            int size = vec.size();
            sort(vec.begin(),vec.end());
            if(size % 2 == 0) return (vec[size/2]+vec[size/2 -1])/2.0;
            return vec[size/2];
         }
    };