150强访谈简单

任务调度程序

“任务计划程序”问题的详细指南和 Python 实现。

问题陈述

简单

给定一个 CPU 任务数组,每个任务都由字母 A 到 Z 和冷却间隔 n 表示。每个周期或间隔允许完成一项任务。任务可以按任何顺序完成,但有一个限制:由于冷却要求,相同的任务必须至少间隔 n 个间隔。

返回完成所有任务所需的最小间隔数。

编写一个函数 leastInterval(tasks: List[str], n: int) -> int

约束条件
  • 1 <= len(tasks) <= 10^4
  • tasks[i] is an uppercase English letter
  • 0 <= n <= 100

示例

Example 1
Input
tasks = ["A","A","A","B","B","B"], n = 2
Output
8
Explanation

A possible sequence is A -> B -> idle -> A -> B -> idle -> A -> B.

Example 2
Input
tasks = ["A","A","A","B","B","B"], n = 0
Output
6
Explanation

With no cooling interval, tasks can be executed continuously without idles.

Need a Hint?
考虑使用堆/优先级队列特定的数据结构,例如集合或堆。
Edge Cases to Watch
  • 空输入结构
  • 单元素输入
  • 大数值范围

准备好解决了吗?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

在编辑器中打开
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

推荐的 Python 资源

通过相关的交互式教程、备忘单和代码比较来扩展您的知识。