优先队列(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/7/30 7:07:02 阅读更多 →
2026论文AI工具避雷排名⚡️双检通过率实测!OKBIYE断层第一

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

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

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

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

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

2026/7/30 7:07:02 阅读更多 →

最新新闻

Llama-3与vLLM部署优化:消费级显卡高效运行指南

Llama-3与vLLM部署优化:消费级显卡高效运行指南

1. 项目概述:当Llama-3遇上vLLM的化学反应去年在部署Llama-2时还在为OOM(内存不足)错误焦头烂额,如今Meta最新开源的Llama-3-8B-Instruct模型配合vLLM推理框架,在我的RTX 3090上竟然能跑出每秒50 token的生成速度。这个…

2026/7/30 7:19:06 阅读更多 →
【面试题-多线程】什么是 ABA 问题,怎么产生的,怎么解决?

【面试题-多线程】什么是 ABA 问题,怎么产生的,怎么解决?

一篇吃透CAS的ABA问题:成因、风险与全套解决方案前言💡 并发编程中我们经常使用 CAS(Compare And Swap)实现无锁并发,相比重量级 synchronized拥有更高吞吐量。很多开发者熟练使用 CAS,却忽略它经典的ABA漏洞。 本文循序渐进讲清楚…

2026/7/30 7:19:06 阅读更多 →
基于Django与人脸识别的智能考勤系统开发实践

基于Django与人脸识别的智能考勤系统开发实践

1. 项目背景与核心价值考勤管理是企业日常运营中最基础却至关重要的环节。传统刷卡、指纹等方式存在代打卡、设备磨损等痛点,而基于人脸识别的智能考勤系统正成为行业新趋势。我们团队最近用Django框架开发了一套融合人脸识别技术的企业级考勤系统,实测识…

2026/7/30 7:19:06 阅读更多 →
AI搜索时代企业营销困局:流量悄悄流失?全域GEO优化破局新思路

AI搜索时代企业营销困局:流量悄悄流失?全域GEO优化破局新思路

随着豆包、文心一言、DeepSeek等生成式AI工具全面普及,用户的信息获取逻辑正在发生颠覆性变革。以往用户找服务商、筛品牌,习惯通过传统搜索引擎逐页浏览筛选;而现在,绝大多数采购商、B端客户会直接通过AI问答的方式,精…

2026/7/30 7:19:06 阅读更多 →
C# ToString(“X“)与ToString(“X2“)详解:十六进制格式化核心原理与实战应用

C# ToString(“X“)与ToString(“X2“)详解:十六进制格式化核心原理与实战应用

1. 项目概述:从日常调试到协议解析,ToString格式化的深度价值如果你在C#、.NET或者一些其他现代编程语言里做过开发,尤其是处理过数据转换、日志输出或者网络协议调试,那你大概率见过或者用过类似ToString("X")这样的代…

2026/7/30 7:19:06 阅读更多 →
UE5室内场景材质实战:从Quixel Bridge到动态水面全流程解析

UE5室内场景材质实战:从Quixel Bridge到动态水面全流程解析

1. 项目概述:为什么室内场景的材质是UE5项目的灵魂如果你在UE5里做过室内场景,肯定有过这样的体验:模型导进来了,灯光也打上了,但整个空间就是感觉“假”,像塑料玩具屋。问题十有八九出在材质上。材质是连接…

2026/7/30 7:18:06 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻