题目
解法:greedy+heap
总体思路是优先greedy的选择结束时间早的课程来进行完成,这样能保证完成最多的课程
- 将所有课程按照结束时间来排序
- 遍历每一节课,假设上了这节课,如果加完当前这节课发现不满足当前的end时间,那么就从选的课里面去掉一节时间最长的课程,最长的课程有可能是现在这节课,也有可能是之前的课程,这样就能时间重新满足条件,这个时候就是对于遍历到现在的课程的最优解。同时因为会移除时间最长的那节课,就保证了之后的课程会有更多的时间
注意:python的heapq默认是小根堆,需要改变符号变成大根堆
class Solution:
def scheduleCourse(self, courses: List[List[