Task Scheduler
Understand how to solve the Task Scheduler problem where CPU tasks must be spaced by a cooling period. Learn to track task execution and idle intervals to determine the minimum CPU intervals needed. Practice implementing an efficient solution that respects constraints and optimizes scheduling.
We'll cover the following...
Statement
You are given an array of CPU tasks represented by uppercase letters (A to Z) and an integer n, which denotes the cooling period required between any two identical tasks. Each task takes exactly one CPU interval to execute. Therefore, each CPU interval can either perform a task or remain idle. Tasks can be executed in any order, but the same task must be separated by at least n intervals.
Determine the minimum number of CPU intervals required to complete all tasks.
Constraints:
tasks.lengthntasksconsists of uppercase English letters
Examples
Let’s take a look at a few examples to get a better understanding of the problem statement:
Understand the problem
Let’s take a moment to ensure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem.
Task Scheduler
What’s the minimum number of units of time if the following values are given as input?
Tasks = [A, A, A, B, B, C, C]
n = 1
3
7
8
9
Figure it out!
We have a game for you to play. Rearrange the logical building blocks to better understand how to solve this problem.
Try it yourself
Implement your solution in the following coding playground.
function leastInterval(tasks, n){// Replace this placeholder return statement with your codereturn -1}export {leastInterval};