630. Course Schedule III
Read the full problem statement on LeetCode.
Difficulty: hard Acceptance: 41% Topics: Array, Greedy, Sorting, Heap (Priority Queue)
View full problem on LeetCode Reading material
Reference solution (spoiler · python)
# Time: O(nlogn)
# Space: O(k), k is the number of courses you can take
import collections
import heapq
class Solution(object):
def scheduleCourse(self, courses):
"""
:type courses: List[List[int]]
:rtype: int
"""
courses.sort(key=lambda t_end: t_end[1])
max_heap = []
now = 0
for t, end in courses:
now += t
heapq.heappush(max_heap, -t)
if now > end:
now += heapq.heappop(max_heap)
return len(max_heap)
Solution from kamyu104/LeetCode-Solutions · MIT
Similar questions