Faaez Razeen

Task Scheduler

  • 2 min read
  • LC-Medium
  • Binary-heap

3 years ago

Solution

TimeSpaceExplanation
O(n)O(n)
def leastInterval(self, tasks: List[str], n: int) -> int: tasks = [-x for x in Counter(tasks).values()] heapify(tasks) t = 0 q = deque() while tasks or q: if tasks: # Process task task = 1 + heappop(tasks) if task: q.append((task, t + n)) if q and q[0][1] == t: heappush(tasks, q.popleft()[0]) t += 1 return t