优先队列(priority_queue)
我之前博客中有队列相关的知识点但是不完全其中有简单队列也有单调队列现在我们着重看一下优先队列优先队列一般有两种用法---大根堆和小根堆一般用于求第k大/第k小的数或者贪心类问题priority_queueint qp; //大根堆先出大数 priority_queueint,vectorint,greaterint qp; //小根堆先出小数而优先队列的常用操作与栈相似都归结如下q.push(x); // 插入元素 q.top(); // 获取堆顶元素最大/最小 q.pop(); // 删除堆顶 q.empty(); // 判断空 q.size(); // 元素数量用优先队列时我们要注意当队列为空时不能用top/pop否则程序会崩溃。下面我们看几道比较经典的例题给你一个长度为n的整数数组score其中score[i]是第i位运动员在比赛中的得分。所有得分都互不相同。运动员将根据得分决定名次其中名次第1的运动员得分最高名次第2的运动员得分第2高依此类推。运动员的名次决定了他们的获奖情况名次第1的运动员获金牌Gold Medal。名次第2的运动员获银牌Silver Medal。名次第3的运动员获铜牌Bronze Medal。从名次第4到第n的运动员只能获得他们的名次编号即名次第x的运动员获得编号x。使用长度为n的数组answer返回获奖其中answer[i]是第i位运动员的获奖情况。示例 1输入score [5,4,3,2,1]输出[Gold Medal,Silver Medal,Bronze Medal,4,5]解释名次为 [1st, 2nd, 3rd, 4th, 5th] 。这道题我们可以用优先队列与pair结合用pair存储下标与成绩队列顶部一定为目前最大值代码class Solution { public: vectorstring findRelativeRanks(vectorint score) { int nscore.size(); priority_queuepairint,intq; for(int i0;in;i){ q.emplace(score[i],i); } vectorstring ans(n); int k1; while(!q.empty()){ auto [s,idx]q.top();//大根堆q的最大值存入S,对应下标存入idx; q.pop(); if(k1) ans[idx]Gold Medal; else if(k2) ans[idx]Silver Medal; else if(k3) ans[idx]Bronze Medal; else ans[idx]to_string(k); k; } return ans; } };数据流中的第k大元素设计一个找到数据流中第k大元素的类class。注意是排序后的第k大元素不是第k个不同的元素。请实现KthLargest类KthLargest(int k, int[] nums)使用整数k和整数流nums初始化对象。int add(int val)将val插入数据流nums后返回当前数据流中第k大的元素。示例 1输入[KthLargest, add, add, add, add, add][[3, [4, 5, 8, 2]], [3], [5], [10], [9], [4]]输出[null, 4, 5, 5, 8, 8]解释KthLargest kthLargest new KthLargest(3, [4, 5, 8, 2]);kthLargest.add(3); // 返回 4kthLargest.add(5); // 返回 5kthLargest.add(10); // 返回 5kthLargest.add(9); // 返回 8kthLargest.add(4); // 返回 8这道题我们就用小根堆当堆里面有k个元素时堆顶就是第k大元素代码class KthLargest { private: int k; priority_queueint, vectorint, greaterint minHeap; // 小根堆 public: KthLargest(int k, vectorint nums) { this-k k; for (int num : nums) { add(num); // 复用add逻辑初始化堆 } } int add(int val) { if (minHeap.size() k) { minHeap.push(val); } else if (val minHeap.top()) { minHeap.pop(); minHeap.push(val); } return minHeap.top(); // 堆顶就是第k大元素 } }; /** * Your KthLargest object will be instantiated and called as such: * KthLargest* obj new KthLargest(k, nums); * int param_1 obj-add(val); */

相关新闻

Ubuntu系统Python多版本管理:源码编译安装与虚拟环境配置指南

Ubuntu系统Python多版本管理:源码编译安装与虚拟环境配置指南

1. 项目概述:为什么需要手动管理Python版本?在Ubuntu上搞开发,尤其是涉及机器学习、Web后端或者系统运维,你迟早会遇到一个经典难题:系统自带的Python版本不是你想要的。Ubuntu 22.04 LTS默认带Python 3.10&#xff0c…

2026/10/10 14:33:15 阅读更多 →
2026论文AI工具避雷排名⚡️双检通过率实测!OKBIYE断层第一

2026论文AI工具避雷排名⚡️双检通过率实测!OKBIYE断层第一

别再被网红AI论文工具割韭菜了!!🙅♀️ 今年高校双检审核直接拉满,查重合格AI痕迹清零才算真正定稿。很多热门AI工具看着功能多,实测双检翻车率超70%,根本达不到毕业标准! 整理了2026最新AI论…

2026/10/7 7:01:00 阅读更多 →
2026论文AI工具终极排名[特殊字符]定稿稳过双检,第一名毫无争议

2026论文AI工具终极排名[特殊字符]定稿稳过双检,第一名毫无争议

2026年写论文真的别瞎选工具!! 现在高校重复率查重 AIGC人工智能检测双锁严查,很多网红AI工具看着免费好用,实则AI痕迹爆表、降重翻车、论文泄露、格式不合规。 我按定稿能不能交、盲审稳不稳、双检过不过、安不安全四大硬核标…

2026/10/6 15:29:54 阅读更多 →

最新新闻

Python 多行字符串缩进难题:PEP 822 自动缩进移除语法解析

Python 多行字符串缩进难题:PEP 822 自动缩进移除语法解析

最近 Python 社区的讨论氛围很特别,除了版本迭代,有一个新方向被越来越多人拿出来聊:PEP 822 提案。看到“自动缩进移除的多行字符串”这个提法,我第一反应是“早该有人做这事了”。说起来,Python 的字符串系统已经足够…

2026/10/11 3:09:24 阅读更多 →
单片机毕设项目:基于人体感应的智能垃圾桶自动开盖与满溢告警装置设计 基于ESP32的智能垃圾桶开盖控制与满溢提醒系统设计(031101)

单片机毕设项目:基于人体感应的智能垃圾桶自动开盖与满溢告警装置设计 基于ESP32的智能垃圾桶开盖控制与满溢提醒系统设计(031101)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/11 3:09:24 阅读更多 →
数字化工厂规划与建设指南:架构设计、实施路径与避坑要点

数字化工厂规划与建设指南:架构设计、实施路径与避坑要点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 3:09:24 阅读更多 →
基于PJ85718DM与STM32F303RC的HVAC本地及远程温度监测方案

基于PJ85718DM与STM32F303RC的HVAC本地及远程温度监测方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 3:09:24 阅读更多 →
Bash脚本实现Linux服务器日常巡检与自动化报告

Bash脚本实现Linux服务器日常巡检与自动化报告

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 3:09:24 阅读更多 →
宽温磁环电感-40℃到150℃温冲后EMC失效的机理与验证流程

宽温磁环电感-40℃到150℃温冲后EMC失效的机理与验证流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 3:08:24 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →