剣指offer 63題:データストリームの中位数
3624 ワード
剣指offer 63題:データストリームの中位数タイトル説明 データストリームの中央値 ソースコード タイトルの説明
データ・ストリームの中央値
データ・ストリームの中位数を取得するにはどうすればいいですか?データストリームから奇数個の数値を読み出すと、中位数は、すべての数値がソートされた後に中間に位置する数値である.データストリームから偶数個の数値が読み出されると、中位数は、すべての数値が並べ替えられた後の中間の2つの数の平均値となります.Insert()メソッドを用いてデータストリームを読み出し,GetMedian()メソッドを用いて現在の読み出しデータの中位数を取得した.
ソースコード
データ・ストリームの中央値
データ・ストリームの中位数を取得するにはどうすればいいですか?データストリームから奇数個の数値を読み出すと、中位数は、すべての数値がソートされた後に中間に位置する数値である.データストリームから偶数個の数値が読み出されると、中位数は、すべての数値が並べ替えられた後の中間の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];
}
};