当前位置: 首页 > news >正文

leetcode 2054(排序 + 单调栈,通用做法是 DP)

2054: 两个最好的不重叠活动

题意:在结束时间小于 startTime 的活动中,选择价值最大的活动。

为了方便查找,先把 events 按照结束时间从小到大排序。

排序后,对比如下两个活动:

  • 活动一:结束于 3 时刻,价值 999。
  • 活动二:结束于 6 时刻,价值 9。

活动二的结束时间又晚,价值又小,全方面不如活动一,是垃圾数据,直接忽略。

换句话说,在遍历 events 的过程中(注意 events 已按照结束时间排序),只在遇到更大价值的活动时,才记录该活动。把这些活动记录到一个栈(列表)中,那么从栈底到栈顶,结束时间是递增的,价值也是递增的,非常适合二分查找

枚举第二个活动,在单调栈中二分查找结束时间严格小于 startTime 的最后一个活动,即为价值最大的第一个活动。如果没找到,那么只能选一个活动。

为了简化判断逻辑,可以在栈底加一个结束时间为 0,价值也为 0 的哨兵。

ranges::sort(events,{},[](auto& e){return e[1];});

vector<pair<int,int>> st={{0,0}}; //栈底哨兵
auto it=--ranges::lower_bound(st,start_time,{},&pair<int,int>::first); ans=max(ans,it->second+value);

单调栈递增,如果找不到,因为有“栈底哨兵”,因此找不到满足条件的活动时,it={0,0},it->second=0,不会越界。

class Solution { public: int maxTwoEvents(vector<vector<int>>& events) { //按照结束时间升序排序 ranges::sort(events,{},[](auto& e){return e[1];}); //从栈底到栈顶,结束时间递增,价值递增 vector<pair<int,int>> st={{0,0}}; //栈底哨兵 int ans=0; for(auto& e:events){ int start_time=e[0],value=e[2]; //二分查找最后一个结束时间 < start_time 的活动 auto it=--ranges::lower_bound(st,start_time,{},&pair<int,int>::first); ans=max(ans,it->second+value); if(value>st.back().second) st.emplace_back(e[1],value); } return ans; } };
http://www.rkmt.cn/news/142756.html

相关文章:

  • 从代码补全到项目交付:MonkeyCode如何重塑你的全流程开发体验
  • 4G工业网关实现PLC数据采集与HTTP协议上报
  • 期末考试04
  • 达尔文12号在哪买:效率提80%!一键直达抢购口揭秘 - 品牌测评家
  • rust使用protobuf
  • 蒸汽轮机在线监测:燃气电厂高效运转的“二当家”与隐形守护者
  • 青云卫找谁买:复购率90%!老客私藏选购路径曝光 - 品牌测评家
  • 破局AI搜索流量困局:Deepseek优化核心服务商深度解析 - 品牌推荐排行榜
  • 优质石英粉厂家推荐排行榜——聚焦高纯度与定制化需求 - 资讯焦点
  • 2025年大模型学习终极指南:四阶段路线图,带你从零基础到实战专家,大模型从入门到精通!
  • 科研新利器:书匠策AI如何重塑期刊论文写作的智能范式
  • 大黄蜂重疾找谁买:用户增300%!靠谱顾问名单首公开 - 品牌测评家
  • 护发精油什么牌子效果最好?7款针对不同发质护发精油实测清单 - 资讯焦点
  • 前端 TypeScript 入门2
  • python基于flask的学生课外时间管理系统_a673wq6x_Pycharm vue django
  • 当你的论文卡在“差一点就能投”:一位科研“老油条”的深夜自白与一个安静却高效的AI写作伙伴
  • 深耕精准触达:GEO优化服务商的专业力甄选指南 - 品牌推荐排行榜
  • 2025最新园林景观、景观设计、景观施工、绿化、景观工程推荐至大园林景观:三维服务体系,铸就空间美化专家 - 全局中转站
  • python基于flask的山西高校毕业生信息咨询平台_w2i00tg5_Pycharm vue django
  • 数字生命工程的突破-震惊吧,世界!
  • 德国留学机构哪个好?中山市粤教国际教育实力分析 - 栗子测评
  • python基于flask的校园人脸识别门禁系统的设计与实现_rgjx5997_Pycharm vue django
  • 当人类科学家遇上AI“同行评审”:一场关于效率、规范与科研表达的静默革命——书匠策AI期刊写作功能体验手记
  • 2025年12月南油尾货推荐榜:南油服装尾货、高端尾货供应、尾货库存、服装库存、服装尾货全品类、高价一手回收、直播高价回收,健建服饰登顶,高品质尾货选购风向标 - 海棠依旧大
  • 基于php的非物质文化遗产推广系统
  • CA-310微量水分测量仪供应商推荐:2025年行业优秀企业 - 品牌推荐大师1
  • 基于springboot + vue职位管理推荐系统
  • 【笔记】golang plan9 汇编中,一个汇编函数调用另一个汇编函数
  • 2025年显微镜公司推荐榜:高清视频显微镜/测量型显微镜/智能识别显微镜/产线自动化智能检测显微镜/生物显微镜厂家核心实力全解析 - 海棠依旧大
  • 2025年防撞与桥梁护栏公司推荐榜:桥面防撞与桥梁护栏/灯光防撞与桥梁护栏/道路防撞与桥梁护栏厂家引领行业安全升级 - 海棠依旧大