630. 课程表 III 贪心

优先选 截止时间靠后的且持续时间短的

class Solution {
public:


    int scheduleCourse(vector<vector<int>>& courses) {
        int len = courses.size();
        int ret = 0, cnt = 0;
        priority_queue<int> q;
        sort(courses.begin(), courses.end(), [](vector<int>& a, vector<int>& b)->bool { return a[1] < b[1];});
        
        for(int i = 0; i < len; i++)
        {
            if(courses[i][1] - courses[i][0] >= ret)
            {
                q.push(courses[i][0]);
                ret += courses[i][0];
            }
            else if(!q.empty() && courses[i][0] < q.top())
            {
                ret -= q.top();
                q.pop();
                ret += courses[i][0];
                q.push(courses[i][0]);
            }
        }
        return q.size();
    }
};

 

posted @ 2022-01-28 11:31  WTSRUVF  阅读(22)  评论(0)    收藏  举报