题解 | #数据流中的中位数#

数据流中的中位数

https://www.nowcoder.com/practice/9be0172896bd43948f8a32fb954e1be1

#include <vector>
class Solution {
public:
    void Insert(int num) {
        nums.push_back(num);
        size++;
	  	//插入后直接进行排序
        if(size >= 2 && nums[size-1] < nums[size-2])
        {
            int temp = nums[size-1];
            int i = size-2;
            while(i>=0 && nums[i] > temp)
            {
                nums[i+1] = nums[i];
                i--;
            }
            nums[i+1] = temp;
        }
    }

    double GetMedian() { 
        if(size % 2  == 0)
        {
            return static_cast<double>(nums[size/2-1]+nums[size/2])/2;
        }
        else {
            return nums[size/2];
        }
    
    }
private:
    vector<int> nums;
    int size = 0;
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务