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

算法通关村第十四关|黄金挑战|数据流的中位数

数据流的中位数

原题:力扣295.

设计一种数据结构可以支持添加整数和返回中位数的操作。

之前写过找中间用两个堆,这道题就可以使用一个大顶堆和一个小顶堆。

大顶堆存储比较小的元素,小顶堆存储比较大的元素。

class MedianFinder {PriorityQueue<Integer> minHeap;PriorityQueue<Integer> maxHeap;public MedianFinder() {this.minHeap = new PriorityQueue<>();this.maxHeap = new PriorityQueue<>((a, b) -> b - a);}public void addNum(int num) {if (minHeap.isEmpty() || num > minHeap.peek()) {// 进入小顶堆minHeap.offer(num);// 平衡两个堆的长度if (minHeap.size() - maxHeap.size() > 1) {maxHeap.offer(minHeap.poll());}} else {// 进入大顶堆maxHeap.offer(num);// 平衡两个堆的长度if (maxHeap.size() - minHeap.size() > 0) {minHeap.offer(maxHeap.poll());}}}public double findMedian() {if (minHeap.size() > maxHeap.size()) {return minHeap.peek();} else {return ((minHeap.peek() + maxHeap.peek()) / 2.0;}}
}

如果对您有帮助,请点赞关注支持我,谢谢!❤
如有错误或者不足之处,敬请指正!❤
个人主页:星不易 ❤
算法通关村专栏:不易|算法通关村 ❤

http://www.lryc.cn/news/253855.html

相关文章:

  • 挑选数据可视化工具:图表类型、交互功能与数据安全
  • 华纳云:有效解决服务器宕机的办法
  • 坦克大战-部分
  • OracleRac跨网段修改Public IP/VIP/Private IP/Scan IP
  • 使用Pytorch从零开始实现BERT
  • Python爬虫-新能源汽车销量榜
  • 外包干了8个月,技术退步明显.......
  • <JavaEE> volatile关键字 -- 保证内存可见性、禁止指令重排序
  • docker安装mysql8
  • 消息丢失排查方法?
  • Linux 匿名页反向映射
  • 国内首个农业开源鸿蒙操作系统联合华为正式发布
  • python HTML文件标题解析问题的挑战
  • AIM: Symmetric Primitive for Shorter Signatures with Stronger Security
  • 【 Go语言使用xorm框架操作数据库】
  • DouyinAPI接口系列丨Douyin商品详情数据接口丨Douyin视频详情数据接口
  • 旺店通对接中国南方电网,打破跨系统连接,让数据轻易互通成为现实
  • 简介Kadane算法及相关的普通动态规划
  • 校园教务管理系统
  • 【LeetCode热题100】【双指针】接雨水
  • 软件工程-(可行性分析、需求分析)
  • HuggingFace学习笔记--BitFit高效微调
  • 阅读笔记|A Survey of Large Language Models
  • JSP 设置静态文件资源访问路径
  • 【Pytorch】Visualization of Feature Maps(4)——Saliency Maps
  • java第三十课
  • Scala--2
  • 【SQL SERVER】定时任务
  • MyBatis-Plus学习笔记(无脑cv即可)
  • 【VUE】watch 监听失效