Search⌘ K
AI Features

Solution: Task Scheduler

Explore how to determine the minimum number of CPU intervals needed to complete tasks with cooling periods. Understand the strategy of frequency analysis to schedule the most frequent tasks first, fill idle slots with less frequent tasks, and optimize total execution time. This lesson guides you through an efficient solution involving frequency counting, sorting, and calculating idle slots to create a schedule that meets cooling requirements while minimizing CPU idle time.

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:

  • 1 1 \leq  tasks.length 1000 \leq 1000

  • ...