华为OD机试真题精讲:执行时长(Python/Java/C++多语言实现)
一、题目描述(2025B卷高频100分题)
在分布式系统中,需要计算一批任务的总执行时长,规则如下:
- 输入为:
- 任务列表
tasks,每个元素为[start_time, duration, parallelism](开始时间、执行耗时、并行度,均为非负整数); - 并行度
parallelism表示该任务可同时执行的最大实例数(1 ≤ parallelism ≤ 100); - 所有任务的开始时间
start_time表示任务可被调度的最早时间;
- 任务列表
- 调度规则:
- 任务需按开始时间升序调度(开始时间相同则按输入顺序);
- 同一任务的多个实例,受限于并行度,超出并行度的实例需等待前序实例完成后再执行;
- 任务实例的执行不可中断,一旦开始必须执行至结束;
- 输出:所有任务全部执行完成的总时长(即从时间0到最后一个任务实例结束的时间差)。
关键约束
- 任务数量 1 ≤ n ≤ 1000;
- 开始时间 0 ≤ start_time