力扣 630课程表iii

 

原题链接

题解

反悔贪心,或者说是贪心+优先队列。

code

 

复制代码
class Solution {
public:
    static bool cmp(vector<int > a,vector<int > b){
        if (a[1]!=b[1]) return a[1]<b[1];
        return a[0]<b[0];
    }
    int scheduleCourse(vector<vector<int>>& courses) {
        int cnt=courses.size();
        sort(courses.begin(),courses.end(),cmp);

        int ans=0,now=0;
        priority_queue<int > que;
        for (int i=0;i<cnt;i++){
            if (now+courses[i][0]<=courses[i][1]){
                now+=courses[i][0];
                que.push(courses[i][0]);
            }
            else if (!que.empty()){
                int x=que.top();
                if (courses[i][0]<=x){
                    que.pop();
                    now+=courses[i][0]-x;
                    que.push(courses[i][0]);
                }
            }
        }

        return que.size();
    }
};
复制代码

 

posted @   黑屿白  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示