Introduction
Task Scheduler means:
- executing tasks while respecting cooldown periods
Rule:
Same task must wait n intervals before running again. Goal:
- find minimum time required to execute all tasks
Example:
Tasks: [A,A,A,B,B,B]
n = 2
Output:8
Explanation:
A → B → IdleA → B → Idle
A → B
This problem is one of the most important applications of:
Heap + GreedyConstraints
1 <= tasks.length <= 10^40 <= n <= 100
Approach : Max Heap + Greedy
Explanations:
Explanation:
The idea is:
- always execute
most frequent task - use Max Heap
to prioritize tasks - maintain cooldown
using temporary storage
Steps:
- Count frequencies.
- Build Max Heap.
- Execute highest frequency task.
- Reduce frequency.
- Store remaining count.
- Reinsert after cycle.
Observation:
Most frequent tasks determine minimum schedule length. This approach:
- minimizes idle slots
- efficiently schedules tasks
Dry Run
Tasks:[A,A,A,B,B,B]
n = 2
Frequencies:
A → 3
B → 3
Heap: 3,3
Cycle:
A B Idle
Remaining:
2,2
Cycle: A B Idle
Remaining:
1,1
Cycle: A B
Answer:
8
Practice :