美文网首页
任务调度器

任务调度器

作者: windUtterance | 来源:发表于2020-11-18 09:38 被阅读0次

题目描述
给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。
然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。
你需要计算完成所有任务所需要的最短时间。

示例
输入:tasks = ["A","A","A","B","B","B"], n = 2
输出:8
解释:A -> B -> (待命) -> A -> B -> (待命) -> A -> B.
在本示例中,两个相同类型任务之间必须间隔长度为 n = 2 的冷却时间,而执行一个任务只需要一个单位时间,所以中间出现了(待命)状态。

作者:LeetCode
链接:https://leetcode-cn.com/problems/task-scheduler/solution/ren-wu-diao-du-qi-by-leetcode/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Java代码

class Solution {
    public int leastInterval(char[] tasks, int n) {
        int[] map = new int[26];
        for(char c : tasks)
            map[c - 'A']++;
        Arrays.sort(map);

        int max_val = map[25] - 1, idle_slots = max_val * n;
        for(int i = 24;i >= 0 && map[i] > 0;i--) {
            idle_slots -= Math.min(map[i], max_val);
        }

        return idle_slots > 0? idle_slots + tasks.length : tasks.length;
    }
}

相关文章

  • 分布式调度器Quartz解读

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

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

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

  • 任务调度器

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

  • 任务调度器

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

  • 定时任务框架Quartz

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

  • Quartz简单使用

    基础概念 Scheduler - 与调度器交互的主要API。 Job - 需要被调度器调度的任务必须实现的接口。 ...

  • 模拟kafka时间轮

    延迟功能调度器 时间轮 槽(任务列表) 任务 测试

  • Quartz任务调度器

    Quartz任务调度器 与spring的整合 核心概念 1.scheduler是一个计划调度器容器,容器里面可以盛...

  • 任务调度器学习

    Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工...

  • 队列--任务调度器

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

网友评论

      本文标题:任务调度器

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