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

LeetCode 课程表III题解

LeetCode 课程表III题解

题目描述

给定 n 门课程,每门课程有持续时间 ti 和截止时间 di。找到能够完成的最大课程数。

示例

输入:courses = [[100,200],[200,1300],[1000,1250],[2000,3200]]
输出:3

解题思路

方法:贪心 + 优先队列

思路

  • 按截止时间排序课程。
  • 使用优先队列(最大堆)存储已选课程的持续时间。
  • 遍历课程,如果总时间加上当前课程持续时间小于等于截止时间,则选择该课程。
  • 否则,如果当前课程持续时间小于堆中最大持续时间,则替换堆中最大持续时间的课程。

复杂度分析

  • 时间复杂度:O(n log n)。
  • 空间复杂度:O(n)。

代码实现

import heapq def schedule_course(courses): courses.sort(key=lambda x: x[1]) total_time = 0 max_heap = [] for t, d in courses: if total_time + t <= d: total_time += t heapq.heappush(max_heap, -t) elif max_heap and -max_heap[0] > t: total_time += t + heapq.heappop(max_heap) heapq.heappush(max_heap, -t) return len(max_heap) # 测试 def test_schedule_course(): courses = [[100, 200], [200, 1300], [1000, 1250], [2000, 3200]] print(schedule_course(courses)) # 输出:3 if __name__ == "__main__": test_schedule_course()

总结

课程表III是贪心和优先队列的典型应用,通过优先队列维护已选课程的持续时间,确保不超过截止时间。

http://www.jsqmd.com/news/851328/

相关文章:

  • 猫抓视频嗅探扩展:如何快速下载网页视频的完整终极指南
  • 2026 工地路基箱、铺路钢板口碑优选榜单:重庆地区施工垫板、移动洗车槽靠谱厂家综合推荐,适配工地临时铺路、渣土车辆冲洗、场地硬化支护,实用耐用性价比高 - 海棠依旧大
  • Pixelle-Video:如何让AI为您的声音创作注入灵魂?
  • Gemini赋能安全工程师:自动写PoC脚本
  • 如何3分钟搞定专业级虚拟背景:obs-backgroundremoval快速上手指南
  • 2026 年东莞家装设计与整装公司选型指南及性价比对比分析 - 品牌企业推荐师(官方)
  • 3步搞定B站硬核会员!AI自动答题工具bili-hardcore让你轻松过关
  • 雨和虹防水维修:德州德百玫瑰园阳台漏水维修真实案例|季风气候渗水根治+业主实拍好评 - 雨和虹防水维修
  • 5分钟快速上手Vue3思维导图:打造专业级数据可视化应用
  • Cursor Free VIP:终极免费解锁Cursor Pro高级功能的完整指南
  • 2026最新英语作文批改神器 学生党备考提分的实用辅助工具
  • 思源宋体TTF格式终极指南:免费商用中文字体的完整使用教程
  • Avogadro 2:如何免费实现专业级3D分子建模与可视化?
  • 如何在Windows系统上轻松安装安卓应用:APK安装器完整指南
  • 3天掌握Dify工作流开发:从零构建企业级AI应用的完整指南
  • 5分钟彻底净化Windows 11:Win11Debloat终极优化指南
  • Altium Designer实战:电子钟PCB布局布线避坑指南(附完整工程文件)
  • 构建专属数字人交互平台:从零到一的轻量化实现方案
  • LangChain4j-examples:基于Java的AI智能体工作流编排深度解析与实践指南
  • 告别DDPG训练不稳定!用SAC(软性演员-评论家)算法搞定复杂环境强化学习
  • 别再让超长图例毁了你的ECharts饼图!手把手教你配置legend换行与滚动分页
  • 如何轻松解锁Steam Deck完整潜力:Decky Loader插件加载器实战指南
  • 3步实现微信防撤回终极解决方案:消息保留工具完全指南
  • 广东省报考cppm指定授权机构-报名scmp证书优秀推广单位 - 品牌企业推荐师(官方)
  • IndexTTS-vLLM技术突破:重新定义语音合成性能边界
  • 昇腾C FMA临时缓冲区因子大小接口
  • 别再为VMware里Kali上不了网发愁了!三种网络模式(桥接/NAT/仅主机)保姆级配置与排错指南
  • 2026年数据治理工具推荐:瓴羊Dataphin、龙石、火山引擎横评对比 - 博客万
  • Squirrel-RIFE:AI视频补帧的终极免费解决方案,10-25倍速度提升让老旧视频焕发新生
  • 2026年4月有名的钯回收公司推荐,金膏回收/银渣回收/铂碳粉回收/铂触煤回收/钌浆回收/金盐回收,钯回收公司怎么选择 - 品牌推荐师