news 2026/3/30 7:37:05

leetcode 2402(双堆模拟,小根堆)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 2402(双堆模拟,小根堆)

2402: 会议室Ⅲ

思路:双堆模拟priority_queue

按照时间顺序模拟开会过程。

对于会议 [start,end),我们需要知道:

  • 在 start 时刻空闲的会议室中,编号最小的会议室。可以用一个最小堆 idle 维护空闲会议室的编号。
  • 如果没有空闲的会议室呢?我们需要找最早结束的会议室。可以用一个最小堆 inUse 维护使用中的会议室的结束时间和编号。

这两类会议室是互补关系,伴随着会议的开始和结束,会议室在这两类中来回倒:

  • 首先,从 inUse 中去掉结束时间小于等于 start的所有会议室,将其编号添加到 idle 中。(使用结束)
  • 然后分类讨论:
    如果此时有空闲的会议室,那么从 idle 中弹出编号最小的会议室,和 end 一起,添加到 inUse 中。
    否则,从 inUse 中弹出一个最早结束的会议室(若有多个同时结束,弹出编号最小的会议室),顺延会议的结束时间为 end+e−start。

在上述模拟的过程中,每使用一个编号为 i 的会议室,就把 i 的出现次数加一。返回举办最多次会议的房间编号。如果存在多个房间满足此条件,则返回编号最小的房间。

注意题目保证所有会议的开始时间互不相同。

class Solution { public: int mostBooked(int n, vector<vector<int>>& meetings) { ranges::sort(meetings,{},[](auto& m){return m[0];}); //小根堆(堆顶最小) priority_queue<int,vector<int>,greater<>> idle; //会议室编号 for(int i=0;i<n;i++) idle.push(i); //{结束时间,会议室编号} priority_queue<pair<long long,int>,vector<pair<long long,int>>,greater<>> inUse; vector<int> cnt(n); //使用次数 for(auto& m:meetings){ long long start=m[0],end=m[1]; //在start时刻空出来的会议室 while(!inUse.empty() && inUse.top().first<=start){ //使用结束 idle.push(inUse.top().second); inUse.pop(); } int i; if(!idle.empty()){ //有空闲的会议室 i=idle.top(); idle.pop(); } else{ //没有空闲的会议室 auto[e,room]=inUse.top(); //弹出最早结束的会议室(若有多个同时结束,弹出编号最小的会议室) i=room; inUse.pop(); end+=e-start; //延期会议的持续时间和原会议持续时间相同 } inUse.emplace(end,i); cnt[i]++; } int ans=0; for(int i=0;i<n;i++){ if(cnt[i]>cnt[ans]) ans=i; } return ans; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/28 22:50:06

TensorRT极致优化:让您的GPU算力发挥最大效能

TensorRT极致优化&#xff1a;让您的GPU算力发挥最大效能 在现代AI系统中&#xff0c;模型一旦训练完成&#xff0c;真正的挑战才刚刚开始——如何在生产环境中以最低延迟、最高吞吐的方式运行推理&#xff1f;尤其是在视频分析、语音助手、推荐引擎等对实时性要求极高的场景下…

作者头像 李华
网站建设 2026/3/27 2:55:17

使用TensorRT将HuggingFace模型提速5倍的真实案例

使用TensorRT将HuggingFace模型提速5倍的真实案例 在今天的AI服务部署中&#xff0c;一个常见的困境是&#xff1a;模型明明已经在训练阶段达到了理想的准确率&#xff0c;但一旦上线&#xff0c;用户却抱怨“响应太慢”。尤其是在情感分析、意图识别这类高频NLP任务中&#xf…

作者头像 李华
网站建设 2026/3/27 13:00:48

性能瓶颈自动识别:长期运行服务的健康管家

性能瓶颈自动识别&#xff1a;长期运行服务的健康管家 在自动驾驶系统实时处理街景图像、金融风控模型毫秒级拦截欺诈交易、智能客服724小时响应用户提问的今天&#xff0c;AI已不再是实验室里的“演示项目”&#xff0c;而是深入生产一线的关键基础设施。这些场景有一个共同特…

作者头像 李华
网站建设 2026/3/27 2:55:17

curl调试技巧:从HTTP请求到性能分析

调试接口用Postman是挺方便&#xff0c;但服务器上没图形界面&#xff0c;只能用curl。 curl功能强大得离谱&#xff0c;但大部分人只会curl一个URL。这篇总结一下我常用的调试技巧。 基础请求 # GET curl https://api.example.com/users# 带参数的GET curl "https://a…

作者头像 李华
网站建设 2026/3/27 15:33:16

实测对比:原生PyTorch vs TensorRT推理性能差距惊人

实测对比&#xff1a;原生PyTorch vs TensorRT推理性能差距惊人 在AI模型从实验室走向真实世界的最后一公里&#xff0c;性能的微小提升往往意味着成本的大幅下降。你有没有遇到过这样的场景&#xff1f;训练好的模型部署上线后&#xff0c;明明参数量不算大&#xff0c;却在实…

作者头像 李华
网站建设 2026/3/28 7:56:56

RK3576-Android15原生相机Camera2 修改USB相机预览和成像方向

提示&#xff1a;RK3576-Android15 谷歌原生相机Camera2 使用客户定制的USB相机&#xff0c;发现预览和成像方向错位&#xff0c;相机软件需要适配USB相机 文章目录前言-需求一、基础-参考资料-思路参考资料基础补充架构图了解Camera相关专栏零散知识了解部分相机源码参考&…

作者头像 李华