【LeetCode热题100(100/100)】数据流的中位数

题目地址: 链接

使用双堆维护数据流的中位数:大顶堆 + 小顶堆

ts 复制代码
class MedianFinder {
    private maxPQ: MaxPriorityQueue<number>;
    private minPQ: MinPriorityQueue<number>;
    constructor() {
        this.maxPQ = new MaxPriorityQueue();
        this.minPQ = new MinPriorityQueue();
    }

    addNum(num: number): void {
        const {maxPQ, minPQ} = this
        if(maxPQ.size() !== minPQ.size()) {
            minPQ.enqueue(num)
            maxPQ.enqueue(minPQ.dequeue())
        } else {
            maxPQ.enqueue(num)
            minPQ.enqueue(maxPQ.dequeue())
        }
    }

    findMedian(): number {
        const {maxPQ, minPQ} = this
        if(maxPQ.size() !== minPQ.size()) {
            return minPQ.front()
        } else {
            return (minPQ.front() + maxPQ.front()) / 2;
        }
    }
}

/**
 * Your MedianFinder object will be instantiated and called as such:
 * var obj = new MedianFinder()
 * obj.addNum(num)
 * var param_2 = obj.findMedian()
 */
相关推荐
2601_949950631 小时前
练题簿在线免费刷题 从资料整理到考前自测
面试·职场和发展·pdf·word·刷题
hetao17338372 小时前
2026-10-03~04 hetao1733837 的刷题记录
c++·算法
Zootopia6262 小时前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
longlongzihan3 小时前
从LeetCode 70. 爬楼梯看动态规划:如何精准推导状态转移方程?
c++·算法·leetcode·动态规划
2601_960356384 小时前
2027校招采购岗解析:数学基础如何迁移到需求预测、成本与供应商分析
人工智能·算法
h_a_o777oah4 小时前
【树论】树链剖分:将树形结构转化为线性结构以处理树上路径问题(洛谷 P3384 附C++代码模板)
数据结构·算法·线段树·acm·树链剖分·树论·重链剖分
HEJOO94 小时前
指针的算术运算详解
java·数据结构·算法
Coder-magician4 小时前
《代码随想录》刷题打卡day47:并查集-part01
数据结构·算法·图论
lsc_blog4 小时前
远程和居家办公的经历,技术简历上怎么摆
面试·职场和发展·重构·pdf·求职招聘
垆边人似月.4 小时前
VLAN 资源池(100~200 分档)
数据结构·算法