【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()
 */
相关推荐
墨尘笔尖1 小时前
最大最小值降采样算法的优化
c++·算法
skylijf2 小时前
2026 高项第 6 章 预测考点 + 练习题(共 12 题,做完稳拿分)
笔记·程序人生·其他·职场和发展·软件工程·团队开发·产品经理
white-persist3 小时前
【vulhub shiro 漏洞复现】vulhub shiro CVE-2016-4437 Shiro反序列化漏洞复现详细分析解释
运维·服务器·网络·python·算法·安全·web安全
FL16238631293 小时前
基于C#winform部署软前景分割DAViD算法的onnx模型实现前景分割
开发语言·算法·c#
baizhigangqw4 小时前
启发式算法WebApp实验室:从搜索策略到群体智能的能力进阶
算法·启发式算法·web app
C雨后彩虹4 小时前
最多等和不相交连续子序列
java·数据结构·算法·华为·面试
一江寒逸5 小时前
零基础从入门到精通 AI Agent 开发(全栈保姆级教程)附加篇:AI Agent 面试八股文全集
人工智能·面试·职场和发展
久菜盒子工作室5 小时前
面试经验|产品经理|自我介绍
面试·职场和发展·产品经理
cpp_25015 小时前
P2347 [NOIP 1996 提高组] 砝码称重
数据结构·c++·算法·题解·洛谷·noip·背包dp
Hugh-Yu-1301235 小时前
二元一次方程组求解器c++代码
开发语言·c++·算法