当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。
任务调度器
中等leastInterval()时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(n),空间 O(1)
任务调度器
给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母代表一种不同的任务。任务可以按任意顺序执行,每个单位时间完成一个任务。
存在一个冷却时间 n:两个相同种类的任务之间,必须至少有 n 个单位时间的间隔(这些间隔时间里可以安排其他任务或处于待命状态)。
请返回完成所有任务所需要的最短时间。
约定
tasks只由大写英文字母组成。- 在满足冷却要求的前提下,你可以让 CPU 待命。
输入
tasks:任务数组,长度[1, 10^4]n:冷却间隔,[0, 100]
输出
完成所有任务所需的最短单位时间数。
示例一
输入:
tasks = ["A","A","A","B","B","B"], n = 2
输出:
8
解释:一种可行安排为 A -> B -> 待命 -> A -> B -> 待命 -> A -> B。
示例二
输入:
tasks = ["A","A","A","B","B","B"], n = 0
输出:
6
示例三
输入:
tasks = ["A","A","A","A","A","A","B","C","D","E","F","G"], n = 2
输出:
16
复杂度要求
- 时间
O(n),空间O(1)(任务种类数固定为 26)。
Loading...
输入
[["A","A","A","B","B","B"],2]
预期输出
8