这里有 n 门不同的在线课程,他们按从 1 到 n 编号。每一门课程有一定的持续上课时间(课程时间)t 以及关闭时间第 d 天。一门课要持续学习 t 天直到第 d 天时要完成,你将会从第 1 天开始。

给出 n 个在线课程用 (t, d) 对表示。你的任务是找出最多可以修几门课。

示例:

输入: [[100, 200], [200, 1300], [1000, 1250], [2000, 3200]]
输出: 3
解释:
这里一共有 4 门课程, 但是你最多可以修 3 门:
首先, 修第一门课时, 它要耗费 100 天,你会在第 100 天完成, 在第 101 天准备下门课。
第二, 修第三门课时, 它会耗费 1000 天,所以你将在第 1100 天的时候完成它, 以及在第 1101 天开始准备下门课程。
第三, 修第二门课时, 它会耗时 200 天,所以你将会在第 1300 天时完成它。
第四门课现在不能修,因为你将会在第 3300 天完成它,这已经超出了关闭日期。

提示:

  1. 整数 1 <= d, t, n <= 10,000 。
  2. 你不能同时修两门课程。

class Solution {
public:
    int scheduleCourse(vector<vector<int>>& courses) {
        int curTime = 0;
        priority_queue<int> q;
        sort(courses.begin(), courses.end(), [](vector<int>& a, vector<int>& b) {return a[1] < b[1];});
        for (auto course : courses) {
            curTime += course[0];
            q.push(course[0]);
            if (curTime > course[1]) {
                curTime -= q.top(); q.pop();
            }
        }
        return q.size();
    }
};

630. 课程表 III相关推荐

  1. LeetCode 807. 保持城市天际线 / 630. 课程表 III(贪心+优先队列)/ 851. 喧闹和富有(拓扑排序)

    807. 保持城市天际线 2021.12.13 每日一题 题目描述 给你一座由 n x n 个街区组成的城市,每个街区都包含一座立方体建筑.给你一个下标从 0 开始的 n x n 整数矩阵 grid ...

  2. 【数据结构与算法】之深入解析“课程表III”的求解思路与算法示例

    一.题目要求 这里有 n 门不同的在线课程,按从 1 到 n 编号,给你一个数组 courses,其中 courses[i] = [durationi, lastDayi] 表示第 i 门课将会持续上 ...

  3. C#LeetCode刷题-贪心算法

    贪心算法篇 # 题名 刷题 通过率 难度 44 通配符匹配 17.8% 困难 45 跳跃游戏 II 25.5% 困难 55 跳跃游戏 30.6% 中等 122 买卖股票的最佳时机 II C#LeetC ...

  4. 贪心(Greedy Algorithm)

    贪心(Greedy Algorithm) 贪心 44.通配符匹配 45.跳跃游戏 II 55.跳跃游戏 122.买卖股票的最佳时机II 134.加油站 135.分发糖果 179.最大数 277.搜寻名 ...

  5. 如何学好C语言--你的学渣朋友告诉你

    光说不练假把式,光练不说傻把式,又练又说真把式. 真实感受,不是我不想学,是我真的不知道我哪里不会啊和得怎么做啊?本文作者当初就是这么废掉的 推荐两个练习的网站 (一)C语言网 https://www ...

  6. LeetCode专题

    LeetCode解题笔记 前言 复习 树 数组专题 字符串专题 动规专题 哈希表 排序 每日一题 前言 前段时间因为考试等懈怠了,重新开始做题.决定专门开一篇博客迭代记录了,不然文章散乱. 339.除 ...

  7. LeetCode中的那些题

    目录 1. 两数之和 2. 两数相加 3. 无重复字符的最长子串 *******4.寻找两个有序数组的中位数(官方解答) : 5.最长回文子串(官方解答) 15. 三数之和 16. 最接近的三数之和 ...

  8. leetcode 转载

    转载: https://blog.csdn.net/love905661433/article/details/84980135 LeetCode 1- 100 1. 两数之和 : https://b ...

  9. 优先队列(priority queue)

    目录 一,优先队列 二,STL优先队列 三,二叉堆实现优先队列 四,二项堆实现优先队列 五,线段树实现优先队列 六,OJ实战 力扣 295. 数据流的中位数 一,优先队列 优先队列可以插入元素.查询最 ...

  10. Leetcode题目分类指南(单独刷题或学习算法书籍配合使用)

    Leetcode题目分类指南 笔者在学习<算法导论>同时,希望能够配合Leetcode的题目进行分类模块化练习,该分类为笔者自己根据做题学习经验,结合<算法导论>的内容,给出L ...

最新文章

  1. 为VMware虚拟机中的Linux系统设置固定IP的方法
  2. viewpager+fragment学习笔记
  3. 看了这个高并发系统架构,才知道我对秒杀的误解有多深
  4. Halcon求取矩形顶点坐标
  5. 使用python3连接hiveserver2的方法
  6. 牛客21783 牛牛的星际旅行
  7. excel表格打印每页都有表头_这么漂亮的Excel表格,用黑白打印机打印真是可惜了...
  8. HTML5 meta最全使用手册
  9. 【Linux】修改镜像源
  10. Eclipse启动时总是提示“subversive connector discovery”解决方案
  11. Rider编译UE5项目RD报错
  12. Microsoft store下载速度过慢
  13. KMP扩展KMPManacher算法基础与习题(第二更)
  14. c语言质因数分解算法蓝桥杯,【算法】 蓝桥杯 基础练习 分解质因数
  15. 互联网广告算法和系统实践-读书笔记
  16. canvas文字粒子动画js特效
  17. Linux运维职业困惑?给你史上最全互联网Linux工作规划!
  18. 前端工程师的 caniuse
  19. 微信小程序获取启动参数
  20. 300最不常用的springboot计算机毕业设计题目汇总,总有你需要用到的

热门文章

  1. LintCode—删除排序链表中的重复元素(112)
  2. C# 中用 PadLeft、PadRight 补足位数
  3. Redis.conf 详解
  4. 阿里专家与你分享:你必须了解的Java多线程技术
  5. 提升研发团队战斗力的方法
  6. 2013=726 整合,优化,利用自身资源。 让自己的时间更有意义,最大化利用
  7. JSP 中 forward 转发 和 sendRedirect 重定向的区别
  8. php smarty数学函数,smarty详解二:从文件读取变量、保留变量、数学计算、内建函数...
  9. OpenCV-图像处理(10、膨胀与腐蚀)
  10. json 数据 生成 图表_比Excel更美观!你可知PhotoShop也能画图表