当前位置: 首页 > news >正文

力扣-295.数据流的中位数

题目链接

295.数据流的中位数

class MedianFinder {PriorityQueue<Integer> left;//队头最大PriorityQueue<Integer> right;//队头最小public MedianFinder() {left = new PriorityQueue<>(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2 - o1;}});right = new PriorityQueue<>();}public void addNum(int num) {if (left.size() <= right.size()) {left.offer(num);} else {right.offer(num);}if (!left.isEmpty() && !right.isEmpty() && left.peek() > right.peek()) {left.offer(right.poll());right.offer(left.poll());}}public double findMedian() {if (left.size() > right.size()) {return left.peek();} else {return (left.peek() + right.peek()) / 2.0;}}
}

小结:两个优先级队列,左队列最大值不超过右队列最小值,且左队列容量=右队列(偶数)或左队列容量=右队列+1(奇数),这样就可以根据两个队列的队头元素直接计算出中位数。

http://www.dtcms.com/a/331268.html

相关文章:

  • InfiniBand 与 RoCE 协议介绍
  • 激光雷达与可见光相机的图像融合
  • C++ vector越界问题完全解决方案:从基础防护到现代C++新特性
  • 【代码随想录day 20】 力扣 538.把二叉搜索树转换为累加树
  • 医疗洁净间的“隐形助手”:富唯智能复合机器人如何重塑手术器械供应链
  • 【大模型微调系列-01】 入门与环境准备
  • 机器翻译:回译与低资源优化详解
  • 高精度组合惯导系统供应商报价
  • Java基础07——基本运算符(本文为个人学习笔记,内容整理自哔哩哔哩UP主【遇见狂神说】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
  • 扩展用例-失败的嵌套
  • Kafka 的消费
  • 学习设计模式《二十二》——职责链模式
  • 微软发布五大AI Agent设计模式 推动企业自动化革新
  • hive加载csv中字段含有换行符的处理方法
  • Java设计模式之《原型模式》--深、浅copy
  • 17 ABP Framework 项目模板
  • Origin绘制正态分布直方图+累积概率图|科研论文图表教程(附数据格式模板)
  • JS的学习6
  • 目标检测-动手学计算机视觉12
  • Redis入门到实战教程,深度透析redis
  • Promise 对象作用及使用场景
  • 实验室的样本是否安全?如何确保实验数据的准确性和可靠性?
  • 京东【自主售后】物流信息获取_影刀RPA源码解读
  • 如何写出更清晰易读的布尔逻辑判断?
  • 企业智脑正在构建企业第二大脑,四大场景引擎驱动数字化转型新范式
  • 异步同步,阻塞非阻塞,reactor/proactor
  • android 升级AGP版本后部分so文件变大
  • 记录JetPack组件用法及原理
  • c语言中堆和栈的区别
  • Mybatis学习笔记(二)