C++ | Leetcode C++题解之第295题数据流的中位数

题目:

题解:

cpp 复制代码
class MedianFinder {
    multiset<int> nums;
    multiset<int>::iterator left, right;

public:
    MedianFinder() : left(nums.end()), right(nums.end()) {}

    void addNum(int num) {
        const size_t n = nums.size();

        nums.insert(num);
        if (!n) {
            left = right = nums.begin();
        } else if (n & 1) {
            if (num < *left) {
                left--;
            } else {
                right++;
            }
        } else {
            if (num > *left && num < *right) {
                left++;
                right--;
            } else if (num >= *right) {
                left++;
            } else {
                right--;
                left = right;
            }
        }
    }

    double findMedian() {
        return (*left + *right) / 2.0;
    }
};
相关推荐
林开落L5 小时前
从入门到了解:Protobuf、JSON、XML 核心解析(C++ 示例)
xml·c++·json·protobuffer·结构化数据序列化机制
Queenie_Charlie5 小时前
stars(树状数组)
数据结构·c++·树状数组
会周易的程序员5 小时前
openplc runtimev4 Docker 部署
运维·c++·物联网·docker·容器·软件工程·iot
@––––––5 小时前
力扣hot100—系列4-贪心算法
算法·leetcode·贪心算法
爱装代码的小瓶子6 小时前
【C++与Linux基础】进程间通讯方式:匿名管道
android·c++·后端
CoderCodingNo6 小时前
【GESP】C++ 二级真题解析,[2025年12月]第一题环保能量球
开发语言·c++·算法
LYOBOYI1236 小时前
qtcpSocket详解
c++·qt
REDcker6 小时前
gRPC完整文档
服务器·网络·c++·网络协议·grpc
im_AMBER6 小时前
Leetcode 115 分割链表 | 随机链表的复制
数据结构·学习·算法·leetcode
Mr_Xuhhh6 小时前
介绍一下ref
开发语言·c++·算法