Java-PriorityQueue 优先队列(结构与用法)

news2025/1/15 21:02:50

1. 数据结构

1.1

2.Java使用

2.1 核心要点

  • PriorityQueue是一个无限制的队列,并且动态增长。
  • 默认情况下,优先级队列的对象按自然顺序排序。
  • PriorityQueue 不是线程安全的。多线程情况下可以使用PriorityBlockingQueue。

2.2 构造函数

  • PriorityQueue():使用默认初始容量(11)构造空队列,该容量根据其自然顺序对其元素进行排序。
  • PriorityQueue(Collection c):构造包含指定集合中元素的空队列。
  • PriorityQueue(int initialCapacity):构造具有指定初始容量的空队列,该容量根据其自然顺序对其元素进行排序。
  • PriorityQueue(int initialCapacity,Comparator comparator):构造具有指定初始容量的空队列,该容量根据指定的比较器对其元素进行排序。
  • PriorityQueue(PriorityQueue c):构造包含指定优先级队列中元素的空队列。
  • PriorityQueue(SortedSet c):构造包含指定有序集合中元素的空队列。

2.3 方法

  1. boolean add(object):将指定的元素插入此优先级队列。
  2. boolean offer(object):将指定的元素插入此优先级队列。
  3. boolean remove(object):从此队列中删除指定元素的单个实例(如果存在)。
  4. Object poll():检索并删除此队列的头部,如果此队列为空,则返回null。
  5. Object element():检索但不删除此队列的头部,如果此队列为空,则返回null。
  6. Object peek():检索但不删除此队列的头部,如果此队列为空,则返回null。
  7. void clear():从此优先级队列中删除所有元素。
  8. boolean contains(Object o):如果此队列包含指定的元素,则返回true。

3.示例

3.1 题目

力扣第2558题,一道简单题,但是对上诉数据结构不熟悉就做不出。
在这里插入图片描述

3.2 思路

直接使用PriorityQueue即可。

3.3 代码实现

代码实现:

class Solution {
    public long pickGifts(int[] gifts, int k) {
        PriorityQueue<Integer> pq = new PriorityQueue<Integer>((a, b) -> b - a);
        for (int gift : gifts) {
            pq.offer(gift);
        }
        while (k > 0) {
            k--;
            int x = pq.poll();
            pq.offer((int) Math.sqrt(x));
        }
        long res = 0;
        while (!pq.isEmpty()) {
            res += pq.poll();
        }
        return res;
    }
}


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何去掉Word文档中蓝色和红色波浪线

在Word2013文档中有些文字或者字母的下面会出现一些红色或蓝色的波浪线&#xff0c;这是因为Word会自动检查文档中拼写和语法错误所造成的&#xff0c;那么如何去掉这些蓝色红色的波浪线呢&#xff1f;下面就跟大家分享一下方法。 工具/原料 Word2013 方法/步骤 1 首先打开一个…

Widget必须在GUI线程中创建

背景&#xff1a;miniblink的vip版本&#xff0c;下载功能是独立线程&#xff0c;我希望在下载后弹出窗口&#xff0c;就在其中创建了QWidget子类对象。然后出现了上面的错误。 解决方法&#xff1a; 使用信号和槽来处理。 具体来讲&#xff0c;在独立线程中创建QObject子类…

【波形图】LabVIEW中的波形图和波形图表有什么区别?

波形图和波形图表在显示和更新数据的方式上有所不同。 波形图可接受各种类型的数据阵列&#xff0c;例如数组&#xff0c;波形或动态数据。波形图在接收到数据后将立即绘制所有接收到的数据点 。波形图不接受单点值。当您将包含数据点的数组连接到波形图时&#xff0c;波形图会…

深度学习中的FPN详解

深度学习入门小菜鸟&#xff0c;希望像做笔记记录自己学的东西&#xff0c;也希望能帮助到同样入门的人&#xff0c;更希望大佬们帮忙纠错啦~侵权立删。 目录 一、FPN提出原因 二、FPN的参考思想 三、特征金字塔 四、FPN具体思路 一、FPN提出原因 卷积网络中&#xff0c;深层网…

IDEA 使用技巧

文章目录 语言支持简化编写 有问题&#xff0c;可暂时跳过 个人常用快捷键插件主题插件功能插件 碰到过的问题 除了一些在Linux上用vim开发的大佬&#xff0c;idea算是很友好的集成开发工具了&#xff0c;功能全面&#xff0c;使用也很广泛。 记录一下我的 IDEA 使用技巧&#…

省钱兄短剧短视频视频滑动播放模块源码支持微信小程序h5安卓IOS

# 开源说明 开源省钱兄短剧系统的播放视频模块&#xff08;写了测试弄了好久才弄出来、最核心的模块、已经实战了&#xff09;&#xff0c;使用uniapp技术&#xff0c;提供学习使用&#xff0c;支持IOSAndroidH5微信小程序&#xff0c;使用Hbuilder导入即可运行 #注意&#xff…

1.2 OSI安全架构

思维导图&#xff1a; 1.2 OSI安全架构 为了有效评估组织的安全需求并选择合适的安全产品和政策&#xff0c;安全管理员需要系统化地定义安全需求并描述满足这些需求的措施。这在集中式数据处理环境下就已经很困难&#xff0c;而在今天使用的局域网和广域网中更是如此。 OSI安…

Undefined reference错误处理及Linux设置动态链接库so的默认搜索路径

文章目录 1 问题的提出2 问题的分析3 问题的解决3.1 Windows的VS修改配置属性3.2 Linux系统里添加搜索路径json在/usr/llib目录中libcryto.so在/usr/lib64文件夹中 Linux设置动态链接库so的默认搜索路径方法一&#xff1a;修改 ld.so.conf 文件方法二&#xff1a;修改环境变量方…

3分钟搞定腾讯云轻量应用服务器和云服务器的区别

腾讯云轻量服务器和云服务器有什么区别&#xff1f;为什么轻量应用服务器价格便宜&#xff1f;是因为轻量服务器CPU内存性能比云服务器CVM性能差吗&#xff1f;轻量应用服务器适合中小企业或个人开发者搭建企业官网、博客论坛、微信小程序或开发测试环境&#xff0c;云服务器CV…

CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局

一、概述 操作系统是计算机系统的核心软件&#xff0c;它管理和控制着计算机的硬件和软件资源&#xff0c;为用户和应用程序提供了一个统一、高效、安全的运行环境。操作系统的发展历史也是计算机技术的发展历史的重要组成部分&#xff0c;它见证了计算机从单机到网络&#xf…

GaussDB SQL基础语法示例-常见的条件表达式

目录 一、前言 二、条件表达式的概念及GaussDB中的常见条件表达式 三、GaussDB中常用的条件表达式&#xff08;语法 示例&#xff09; 1、CASE表达式 2、DECODE表达式 3、COALESCE表达式 4、NULLIF表达式 5、GREATEST/ LEAST表达式 6、NVL表达式 四、小结 一、前言 …

聚观早报 |蔚来推出婚车服务;长城汽车第三季度财报

【聚观365】10月30日消息 蔚来推出婚车服务 长城汽车第三季度财报 AI汽车机器人极越01上市 谷歌投资初创公司Anthropic 东方财富第三季度营收 蔚来推出婚车服务 据蔚来汽车官方消息&#xff0c;蔚来宣布推出“蔚来用户专享”的婚庆用车定制服务。 据悉&#xff0c;该服务…

Web3风险不可回避,欧科云链携手FT中文、港大重塑行业信心

在香港Web3.0行业&#xff0c;技术推动了虚拟资产投资市场的快速增长&#xff0c;但另一方面&#xff0c;JPEX诈骗案等行业风险事件也接连发生&#xff0c;为Web3行业发展提供了重要警示。在刚刚结束的香港立法会施政报告答问会上&#xff0c;行政长官李家超表示&#xff0c;与…

三相电机输入线电流与输出功率之间的理论曲线

1.首先取一组电机参数&#xff1a; 定子电阻&#xff1a;11.421欧转子电阻&#xff1a;7.553欧漏感抗&#xff1a;42.90 毫亨互感抗&#xff1a;553.9毫亨空载电流&#xff1a;1.17安。 2. 利用T型等效电路公式绘图&#xff1a; import numpy as np import matplotlib.pyplot …

c语言数据类型的定义

c语言数据类型的定义 c语言数据类型的定义 c语言数据类型的定义一、数据类型的定义二、变量三、常量 一、数据类型的定义 数据类型的定义 在计算机中&#xff0c;不同的数据所需占用的存储空间是不同的&#xff0c;为了便于把数据分成所需内存大小不同的数据&#xff0c;充分利…

OceanBase安装部署

OceanBase自动化安装部署OBD 前提条件一、 OceanBase 集群部署规划1、创建用户2、规划目录 二、安装OceanBase环境1、 方案一&#xff1a;若机器能联网执行如下命令在线下载并安装 all-in-one 安装包2、 方案二&#xff1a;若机器不能联网需要在官网下载 all-in-one安装包&…

8+双疾病+WGCNA+多机器学习筛选疾病的共同靶点并验证表达

今天给同学们分享一篇双疾病WGCNA多机器学习的生信文章“Shared diagnostic genes and potential mechanism between PCOS and recurrent implantation failure revealed by integrated transcriptomic analysis and machine learning”&#xff0c;这篇文章于2023年5月16日发表…

雅思小作文笔记

mostly from Simon’s methods and techniques remember the task is describe what you see, not give an opinion. Just write a report.no conclusion, just a summary(the overview) Question type 小作文的题目类型大致如上 Simon所述&#xff0c;在描述数字的时候&…

云服务器 centos 部署 code-server 并配置 c/c++ 环境

将你的云服务器改为 centos 8 为什么要将云服务器的操作系统改成 centos 8 呢&#xff1f;原因就是 centos 7 里面的配置满足不了 code-server 的需求。如果你使用的是 centos 7 那么就需要你升级一些东西&#xff0c;这个过程比较麻烦。我在 centos 7 上面运行 code-server 的…

内含800个程序案例,最强Python学习资料来了,清华北大都在用!

IEEE Spectrum 重磅发布了 2023 年度编程语言榜单&#xff0c;Python 不仅在“Spectrum”综合排名中保持第一的位置&#xff0c;而且远超第二名 Java。Python以其简洁明了的语法、丰富的库支持和强大的社区生态&#xff0c;赢得了全球开发者的青睐。同时&#xff0c;Python的跨…