1. 程式人生 > 其它 >Codeforces Round #763 (Div. 2) C. Balanced Stone Heaps

Codeforces Round #763 (Div. 2) C. Balanced Stone Heaps

給你一個用字元陣列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);
    }
}
心之所向,素履以往 生如逆旅,一葦以航