Codeforces Round #763 (Div. 2) C. Balanced Stone Heaps
阿新 • • 發佈:2022-01-05
給你一個用字元陣列tasks 表示的 CPU 需要執行的任務列表。其中每個字母表示一種不同種類的任務。任務可以以任意順序執行,並且每個任務都可以在 1 個單位時間內執行完。在任何一個單位時間,CPU 可以完成一個任務,或者處於待命狀態。
然而,兩個 相同種類 的任務之間必須有長度為整數 n 的冷卻時間,因此至少有連續 n 個單位時間內 CPU 在執行不同的任務,或者在待命狀態。
你需要計算完成所有任務所需要的 最短時間 。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/task-scheduler
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
心之所向,素履以往 生如逆旅,一葦以航import java.util.Map; class Solution { public int leastInterval(char[] tasks, int n) { int[] cnt = new int[26]; int max = 0; for (char task : tasks) { cnt[task - 'A']++; if (cnt[task - 'A'] > max) { max = cnt[task - 'A']; } } int ans = (max - 1) * (n + 1); for (int i = 0; i < cnt.length; ++i) { if (cnt[i] == max) { ans++; } } return Math.max(ans, tasks.length); } }