-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added README.md file for Task Scheduler
- Loading branch information
1 parent
4a8218b
commit 93c61ac
Showing
1 changed file
with
94 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
<h2><a href="https://leetcode.com/problems/task-scheduler">Task Scheduler</a></h2> <img src='https://img.shields.io/badge/Difficulty-Medium-orange' alt='Difficulty: Medium' /><hr><p>You are given an array of CPU <code>tasks</code>, each represented by letters A to Z, and a cooling time, <code>n</code>. Each cycle or interval allows the completion of one task. Tasks can be completed in any order, but there's a constraint: <strong>identical</strong> tasks must be separated by at least <code>n</code> intervals due to cooling time.</p> | ||
|
||
<p>Return the <em>minimum number of intervals</em> required to complete all tasks.</p> | ||
|
||
<p> </p> | ||
<p><strong class="example">Example 1:</strong></p> | ||
|
||
<div class="example-block" style=" | ||
border-color: var(--border-tertiary); | ||
border-left-width: 2px; | ||
color: var(--text-secondary); | ||
font-size: .875rem; | ||
margin-bottom: 1rem; | ||
margin-top: 1rem; | ||
overflow: visible; | ||
padding-left: 1rem; | ||
"> | ||
<p><strong>Input:</strong> <span class="example-io" style=" | ||
font-family: Menlo,sans-serif; | ||
font-size: 0.85rem; | ||
">tasks = ["A","A","A","B","B","B"], n = 2</span></p> | ||
|
||
<p><strong>Output:</strong> <span class="example-io" style=" | ||
font-family: Menlo,sans-serif; | ||
font-size: 0.85rem; | ||
">8</span></p> | ||
|
||
<p><strong>Explanation:</strong> A possible sequence is: A -> B -> idle -> A -> B -> idle -> A -> B.</p> | ||
|
||
<p>After completing task A, you must wait two cycles before doing A again. The same applies to task B. In the 3<sup>rd</sup> interval, neither A nor B can be done, so you idle. By the 4<sup>th</sup> cycle, you can do A again as 2 intervals have passed.</p> | ||
</div> | ||
|
||
<p><strong class="example">Example 2:</strong></p> | ||
|
||
<div class="example-block" style=" | ||
border-color: var(--border-tertiary); | ||
border-left-width: 2px; | ||
color: var(--text-secondary); | ||
font-size: .875rem; | ||
margin-bottom: 1rem; | ||
margin-top: 1rem; | ||
overflow: visible; | ||
padding-left: 1rem; | ||
"> | ||
<p><strong>Input:</strong> <span class="example-io" style=" | ||
font-family: Menlo,sans-serif; | ||
font-size: 0.85rem; | ||
">tasks = ["A","C","A","B","D","B"], n = 1</span></p> | ||
|
||
<p><strong>Output:</strong> <span class="example-io" style=" | ||
font-family: Menlo,sans-serif; | ||
font-size: 0.85rem; | ||
">6</span></p> | ||
|
||
<p><strong>Explanation:</strong> A possible sequence is: A -> B -> C -> D -> A -> B.</p> | ||
|
||
<p>With a cooling interval of 1, you can repeat a task after just one other task.</p> | ||
</div> | ||
|
||
<p><strong class="example">Example 3:</strong></p> | ||
|
||
<div class="example-block" style=" | ||
border-color: var(--border-tertiary); | ||
border-left-width: 2px; | ||
color: var(--text-secondary); | ||
font-size: .875rem; | ||
margin-bottom: 1rem; | ||
margin-top: 1rem; | ||
overflow: visible; | ||
padding-left: 1rem; | ||
"> | ||
<p><strong>Input:</strong> <span class="example-io" style=" | ||
font-family: Menlo,sans-serif; | ||
font-size: 0.85rem; | ||
">tasks = ["A","A","A", "B","B","B"], n = 3</span></p> | ||
|
||
<p><strong>Output:</strong> <span class="example-io" style=" | ||
font-family: Menlo,sans-serif; | ||
font-size: 0.85rem; | ||
">10</span></p> | ||
|
||
<p><strong>Explanation:</strong> A possible sequence is: A -> B -> idle -> idle -> A -> B -> idle -> idle -> A -> B.</p> | ||
|
||
<p>There are only two types of tasks, A and B, which need to be separated by 3 intervals. This leads to idling twice between repetitions of these tasks.</p> | ||
</div> | ||
|
||
<p> </p> | ||
<p><strong>Constraints:</strong></p> | ||
|
||
<ul> | ||
<li><code>1 <= tasks.length <= 10<sup>4</sup></code></li> | ||
<li><code>tasks[i]</code> is an uppercase English letter.</li> | ||
<li><code>0 <= n <= 100</code></li> | ||
</ul> |