java刷题--621任务调度器

Posted Anrys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java刷题--621任务调度器相关的知识,希望对你有一定的参考价值。

java刷题--621任务调度器

题目

代码

class Solution {
    public int leastInterval(char[] tasks, int n) {
        char[] cnt = new char[26];
        int maxn = 0;
        for (int task : tasks) {
            //A-0 B-1 C-2 D-3 E-4
            cnt[task - 'A'] ++;
            maxn = Math.max(maxn, cnt[task - 'A']); //得出最高次数
        }
        //maxn - 1是最大频次之间的段数,比如A之间的间隔数,乘以冷冻期加1即跨度
        int ans = (maxn - 1) * (n + 1);  
        for (int i = 0; i < 26; i ++) //最多26个任务字母
            if (cnt[i] == maxn)  
                ans ++;   //如果还有一样的最高频次的 则就是在排列好的后面再加一天
        return Math.max(ans, tasks.length);
    }
}

结果

以上是关于java刷题--621任务调度器的主要内容,如果未能解决你的问题,请参考以下文章

621. 任务调度器

621. 任务调度器

621. 任务调度器

力扣621. 任务调度器 模拟法

力扣621. 任务调度器 模拟法

[LeetCode]621. 任务调度器(贪心)