力扣hot100 数据流的中位数 大小根堆

Problem: 295. 数据流的中位数
在这里插入图片描述

文章目录

  • 思路
  • 复杂度
  • 💖 Code

思路

👨‍🏫 参考

  • 大根堆维护较小值(堆顶即中位数),小根堆维护较大值(堆顶可能是中位数之一)
  • 维护小堆长度较长,大堆较短;
  • 添加元素时需保证大的加到值大的一半,小的加到值小的一半;所以需要先排序后仔加入。
    在这里插入图片描述

复杂度

时间复杂度:
在这里插入图片描述

💖 Code

class MedianFinder {

	PriorityQueue<Integer> maxHeap;
	PriorityQueue<Integer> minHeap;

	public MedianFinder()
	{
		maxHeap = new PriorityQueue<>((x, y) -> (y - x));
		minHeap = new PriorityQueue<>();
	}

	public void addNum(int num)
	{
		if (maxHeap.size() != minHeap.size())
		{
//			 长度为奇数时先放入小顶堆,重新排序后在插入到大顶堆
			minHeap.add(num);
			maxHeap.add(minHeap.poll());
		} else
		{
//			  长度为偶数时先放入大顶堆,重新排序后在插入到小顶堆
			maxHeap.add(num);
			minHeap.add(maxHeap.poll());
		}
	}

	public double findMedian()
	{
		if (minHeap.size() != maxHeap.size())
			return minHeap.peek();
		else
			return (minHeap.peek() + maxHeap.peek()) / 2.0;
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/361597.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初谈C++:缺省参数函数重载

文章目录 缺省参数概述缺省参数的分类全缺省半缺省参数 注意 函数重载概述重载类型不同参数类型不同参数个数不同参数类型顺序不同 C支持函数重载的原理 缺省参数 概述 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时&#xff0c;如果没有指定实参则…

TI AM5708工业派

文章目录 一、TI AM5708工业派简介二、主要使用的功能三、J12 扩展接口四、NFS代码实现总结 一、TI AM5708工业派简介 TI AM5708工业派是基于美国德州仪器&#xff08;TI&#xff09;的AM5708处理器所开发的智能硬件工业派&#xff0c;主要面向工业生产、图像处理、智能人机交…

Java面试题之 IO(四)

Java面试题之 IO&#xff08;四&#xff09; 文章目录 Java面试题之 IO&#xff08;四&#xff09;随机访问流 文章来自Java Guide 用于学习如有侵权&#xff0c;立即删除 随机访问流 这里要介绍的随机访问流指的是支持随意跳转到文件的任意位置进行读写的 RandomAccessFile 。…

HTTPS实现原理

1 为什么需要HTTPS&#xff1f; HTTP 在进行数据传输时采用明文传输&#xff0c;数据包中的用户信息等隐私数据可以被第三方通过抓包等方式窃取&#xff0c;是不安全的。 如果客户端使用 MD5 加密算法对数据进行加密&#xff0c;由于加密后的结果是不可逆的&#xff0c;服务器…

LeetCode刷题日志-117填充每个节点的下一个右侧指针II

二叉树的题目&#xff0c;我认为二叉树必须要掌握递归的三种遍历算法&#xff0c;以及层序遍历算法才能做二叉树题目。这道题目我的想法是&#xff1a; 因为在二叉树每一层中&#xff0c;next指针指向的是的当前节点的右边的节点&#xff0c;所以&#xff0c;使用层序遍历&…

软件价值3-A*算法寻路

A*算法&#xff08;A-star算法&#xff09;是一种启发式搜索算法&#xff0c;主要用于在图或网络中找到从起始节点到目标节点的最佳路径。它结合了Dijkstra算法的广度优先搜索和贪婪最优优先搜索的特点&#xff0c;通过估算从起始节点到目标节点的代价来指导搜索方向。 A*算法…

数据恢复之道:DevicData-P-XXXXXXXX勒索病毒的预防与恢复攻略

尊敬的读者&#xff1a; 随着科技的发展&#xff0c;网络安全问题愈发突出&#xff0c;而勒索病毒作为其中的一种恶意软件&#xff0c;正不断演进成为威胁用户数据安全的严重问题。本文将深入介绍.DevicData-P-XXXXXXXX勒索病毒的特征&#xff0c;提供被感染文件的恢复方法&am…

【Latex】 最全的Latex公式常用符号和文本颜色用法汇总

每次在CSDN写latex公式都没有一个很全的博客能完全覆盖&#xff0c;本文争取汇总Latex使用过程中用到的所有符号和技巧&#xff0c;包括&#xff1a;二元运算与关系符号、大型运算符、数学符号、特殊字符、希腊字母、各种括号和矩阵的编码等。 注意&#xff0c;其他排版主要用…

ov通配符ssl证书申请时间长吗

通配符SSL证书是SSL数字证书的一种&#xff0c;可以同时保护主域名以及同一个域名下的所有子域名。用户在申请通配符SSL证书时需要CA认证机构对提交的信息进行审核&#xff0c;审核时间根据证书的品牌、类型而变化。今天就随SSL盾小编了解OV通配符SSL证书申请时间。 1.通配符S…

深入Pyecharts:桑基图绘制与炫酷效果实战【第38篇—python:桑基图】

文章目录 深入Pyecharts&#xff1a;桑基图绘制与炫酷效果实战桑基图简介安装 Pyecharts简单桑基图的绘制自定义桑基图的炫酷效果高级样式定制 多组数据桑基图的展示动态桑基图的绘制结合真实数据的桑基图案例导出和分享进阶应用&#xff1a;桑基图与其他图表的组合总结 深入Py…

知识点积累系列(四)Kubernetes篇【持续更新】

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 知识点积累 系列文章的第四篇&#xff0c;记录日常学习中遇到的 Kubernetes 相关的知识点 1.Kubernetes琐碎知识点 1.1.为什么要有annotations annotation中除了能够记录一些额外信息&#xff0c;还可以解决k…

几种常见的vcruntime140_1.dll无法继续执行代码弹窗错误解决办法

vcruntime140_1.dll是Windows操作系统中的一个动态链接库文件&#xff0c;用于支持C程序和应用程序的运行&#xff0c;有时可能会遇到以下错误信息&#xff1a;“vcruntime140_1.dll无法继续执行代码”。本文将详细介绍这个常见问题的原因&#xff0c;并提供相应的解决办法。 一…

安装 vant-ui 实现底部导航栏 Tabbar

本例子使用vue3 介绍 vant-ui 地址&#xff1a;介绍 - Vant 4 (vant-ui.github.io) Vant 是一个轻量、可定制的移动端组件库 安装 通过 npm 安装&#xff1a; # Vue 3 项目&#xff0c;安装最新版 Vant npm i vant # Vue 2 项目&#xff0c;安装 Vant 2 npm i vantlatest-v…

Linux服务器根据服务端口号杀死对应服务

获取服务pid 输入命令 ss -tulnp | grep :16522输出 tcp 表示连接的类型是TCP。LISTEN 表示端口正在监听连接。第一个数字 0 是 Recv-Q&#xff08;接收队列&#xff09;&#xff0c;表示当前接收队列中已由网络接收但还未被进程读取的数据的数量。第二个数字 128 是 Send-Q&…

使用moment实现数字转秒数和递进分钟和小时

使用moment实现数字转秒数和递进分钟和小时 效果图引用包js 功能&#xff1a;不满一分钟展示秒数&#xff0c;满一分钟展示分秒&#xff0c;满一小时展示时分秒 效果图 引用包 "moment": "^2.24.0", "moment-duration-format": "^2.3.2&q…

springboot+AOP+自定义注解+RBAC自定义操作权限管理01

springbootAOP自定义注解RBAC自定义操作权限管理01!今天 做了内容是该自定义权限管理系统的前奏。第一小节内容。搭建了一个基础的springboot项目&#xff0c;和数据库的三张表。 tb_user;tb_role;tb_roel_user。实现了一个基础的&#xff0c;用户和角色表的联动查询。为了后续…

uniapp如何安装uview

1.下载并导入插件 打开链接 uView2.0重磅发布&#xff0c;利剑出鞘&#xff0c;一统江湖 - DCloud 插件市场 没有的登录的就先登录 导入成功后&#xff0c;可见 2. 添加配置 main.js import uView from /uni_modules/uview-ui Vue.use(uView) uni.scss import /uni_module…

(M)UNITY三段攻击制作

三段攻击逻辑 基本逻辑&#xff1a; 人物点击攻击按钮进入攻击状态&#xff08;bool isAttack&#xff09; 在攻击状态下&#xff0c; 一旦设置的触发器&#xff08;trigger attack&#xff09;被触发&#xff0c;设置的计数器&#xff08;int combo&#xff09;查看目前攻击…

Mastercam 2024 下载安装教程,流程简单,小白也能轻松搞定,附安装包和工具

前言 Mastercam是一款高效专业的实用型CAD/CAM设计辅助工具&#xff0c;集二维绘图、三维实体造型、曲面设计、体素拼合、数控编程、刀具路径模拟及真实感模拟等多种功能于一身&#xff0c;能够帮助用户轻松设计各种复杂的曲线、曲面零件、刀具路径等。 准备工作 1、Win10及…

小米笔记本电脑共享屏幕到苹果手机,这里有两个方法

相信大家都知道苹果手机投屏到小米笔记本电脑的方法&#xff0c;今天分享一下将电脑投屏到苹果手机的操作。 你可以选择安装软件或不安装软件。 安装软件的方法&#xff1a; 第一步&#xff0c;在小米笔记本电脑和苹果手机都安装AirDroid Cast&#xff0c;两台设备连接同一个网…