优先选 截止时间靠后的且持续时间短的
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(); } };