任务调度
题目
为了充分发挥GPU
算力,
需要尽可能多的将任务交给GPU
执行,
现在有一个任务数组,
数组元素表示在这1s
内新增的任务个数,
且每秒都有新增任务,
假设GPU
最多一次执行n
个任务,
一次执行耗时1s
,
在保证GPU
不空闲的情况下,最少需要多长时间执行完成。
输入
第一个参数为GPU
最多执行的任务个数,取值范围1 ~ 10000
第二个参数为任务数组的长度,取值范围1 ~ 10000
第三个参数为任务数组,数字范围1 ~ 10000
输出描述
执行完所有任务需要多少秒
示例一
输入
3
5
1 2 3 4 5
输出
6
说明
一次最多执行3
个任务,最少耗时6s
示例二
输入
4
5
5 4 1 1 1
输出
5
说明
一次最多执行4
个任务,最少耗时5s
解题思路
- 在
solve_method()
函数中,通过循环遍历 job_count 数组,计算所需的时间。
如果当前任务数加上剩余任务数超过了最大任务数,那么剩余任务数就是当前任务数加上剩余任务数减去最大任务数。否则,剩余任务数为 0。
时间增加 1,表示新的一天。
计算出总时间,如果有剩余任务,总时间再加 1。
核心知识点
代码比较简单,阅读即可。
Python 代码实现