数据流中的中位数

来源:互联网 发布:c语言中最大公约数 编辑:程序博客网 时间:2024/05/17 16:53

题目描述
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。

class Solution {    vector<double>nums;public:    void Insert(int num)    {        nums.push_back(num);    }    double GetMedian()    {        int n=nums.size();        if(n==0)            return 0;        sort(nums.begin(),nums.end());        if(n%2)            return nums[n/2];        else             return (nums[n/2]+nums[n/2-1])/2;    }};
0 0
原创粉丝点击