Leetcode 621 Solution
This article provides solution to leetcode question 621 (task-scheduler)
Access this page by simply typing in "lcs 621" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/task-scheduler
Solution
class Solution:
def leastInterval(self, tasks: List[str], n: int) -> int:
m = collections.defaultdict(int)
for task in tasks:
m[task] += 1
a = sorted([cnt for cnt in m.values()], reverse=True)
if not a:
return 0
limit = a[0] - 1
free_cells = limit * (n + 1)
for cnt in a:
free_cells -= min(limit, cnt)
if free_cells < 0:
return len(tasks)
return len(tasks) + free_cells