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

数据流中的中位数

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

#include <queue>
class Solution {
public:
    void Insert(int num) {
        // 从小到大排序
        if (count % 2 == 0) {
            // 插入左边  
            right.push(num);
            left.push(right.top());
            right.pop();
        } else {
            // 插入右边
            left.push(num);
            right.push(left.top());
            left.pop();
        }
        count++;
    }

    double GetMedian() { 
        if (count % 2 == 0) {
            return (right.top() + left.top()) / 2.0;
        } else {
            return left.top();
        }
    }
private:
    priority_queue<int, vector<int>, greater<int>> right; // 右边 最小值
    priority_queue<int, vector<int>> left; // 左边 最大值
    int count = 0;
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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