taskScheduler
输入配置
执行过程
统计任务频率
任务频率统计
A
× 3
B
× 3
算法说明
任务调度器:相同任务间需要n个冷却时间。使用贪心策略,公式:(maxFreq-1)×(n+1)+maxCount。时间复杂度O(n)。
任务调度器 - 计算完成所有任务所需的最少时间。
函数签名
typescript
function leastInterval(tasks: string[], n: number): number参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
tasks | string[] | 是 | 任务数组 |
n | number | 是 | 冷却时间 |
返回值
| 类型 | 说明 |
|---|---|
number | 最少时间单位 |
工作原理
使用贪心策略:
- 统计每个任务的频率
- 找出最大频率maxFreq和达到最大频率的任务数maxCount
- 计算最少时间: (maxFreq-1) × (n+1) + maxCount
- 结果至少是任务总数
时间复杂度: O(n)
空间复杂度: O(1)