主要思路
每修一门课程,都要保证 这门课程的截止时间 >= 所有已修课程所花的时间总和
数据结构:优先级队列
代码实现
python
class Solution:
def scheduleCourse(self, courses: List[List[int]]) -> int:
courses.sort(key=lambda x:x[1])
arr, sum = list(), 0
for a,b in courses:
if sum+a <= b:
sum += a
heapq.heappush(arr, -a)
elif arr and a < -arr[0]:
sum += a + heapq.heappop(arr)
heapq.heappush(arr, -a)
return len(arr)