美文网首页
621. 任务调度器

621. 任务调度器

作者: justonemoretry | 来源:发表于2021-10-25 23:46 被阅读0次
image.png

解法

用桶的思路,按最大元素数进行分桶,每个桶的容量为n+1,这样最大元素数就能保证可以执行,要么有空闲,要么没空闲,所有的元素都能执行,这样就是任务的数量,这种就是带F的情况,会大于公式计算的。


image.png
class Solution {
    public int leastInterval(char[] tasks, int n) {
        // 记录不同任务出现的次数
        int[] nums = new int[26];
        for (char c : tasks) {
            nums[c - 'A']++;
        }
        // 进行排序
        Arrays.sort(nums);
        // 计算等于最大数量的元素有几个
        int cnt = 1;
        int maxCount = nums[25];
        for (int i = nums.length - 1; i > 0; i--) {
            if (nums[i] == nums[i - 1]) {
                cnt++;
            } else {
                break;
            }
        }
        // 最大数目代表桶数,每桶有n+1的空间,这样最大数目的任务可以冷却
        // 如果不同的任务很多,塞满(maxCount - 1) * (n + 1)后,还要放,那就是没有冷却的情况,和tasks.length一样大
        // cnt代表和最大元素数相同的数目,在最后一行,数目为cnt
        return Math.max(tasks.length, (maxCount - 1) * (n + 1) + cnt);
    }
}

相关文章

  • 621. 任务调度器

    题目描述: 给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 ...

  • 621. 任务调度器

    解法 用桶的思路,按最大元素数进行分桶,每个桶的容量为n+1,这样最大元素数就能保证可以执行,要么有空闲,要么没空...

  • 621. 任务调度器

    一 题目: 二 思路: 方法(贪心算法)容易想到的一种贪心策略为:先安排出现次数最多的任务,让这个任务两次执行的时...

  • 621. 任务调度器/875. 爱吃香蕉的珂珂

    621. 任务调度器 相关标签: 贪心 数组 队列 875. 爱吃香蕉的珂珂 相关标签: 二分查找

  • LeetcodeT621

    621. 任务调度器 难度中等231 收藏 分享 切换为英文 关注 反馈 给定一个用字符数组表示的 CPU 需要执...

  • 分布式调度器Quartz解读

    术语: scheduler:任务调度器 job: 被调度的任务 trigger:触发器,用于定义Job调度时间规则...

  • 分布式任务调度系统设计

    一、思路 任务调度器、任务执行器、任务 任务调度器不关心业务逻辑,只关心任务的触发策略、失败策略、路由策略、阻塞处...

  • 任务调度器

    题目描述:给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种...

  • 任务调度器

    Quartz Scheduler 开源任务调度框架, simple use 1.注册Job 方式1,实现job接口...

  • 定时任务框架Quartz

    定时任务框架! 定时任务就是分为三个模块:任务、触发器、调度器 过程就是,调度器协调触发器来再固定时间去触发任务!

网友评论

      本文标题:621. 任务调度器

      本文链接:https://www.haomeiwen.com/subject/wlcealtx.html