题目:
为了充分发挥GPU算力, 需要尽可能多的将任务交给GPU执行, 现在有一个任务数组, 数组元素表示在这1s内新增的任务个数, 且每秒都有新增任务, 假设GPU最多一次执行n个任务, 一次执行耗时1s, 在保证GPU不空闲的情况下,最少需要多长时间执行完成。
输入描述
第一个参数为gpu最多执行的任务个数 取值范围1~10000
第二个参数为任务数组的长度 取值范围1~10000
第三个参数为任务数组 数字范围1~10000
输出描述 执行完所有任务需要多少秒
例子
输入
3
5
1 2 3 4 5
输出
6
说明,一次最多执行3个任务 最少耗时6s
例子2
输入
4
5
5 4 1 1 1
输出
5
说明,一次最多执行4个任务 最少耗时5s
解题思路:
个人认为本题的难点是理解题目意思,代码层面并不算很难,以下是个人的一些理解:
如果本次任务大于了GPU最多一次执行的任务数n,那么就得将这次任务交给下一次的任务处理,举例二【5,4,1,1,1】来看:
GPU一次只能处理4个任务,那么处理第一组任务就剩余了5-4=1个任务没处理,将没处理的任务记为more,然后进入到下一组任务中。在下一组任务中,优先处理上一组任务没有处理完的任务,也就是more。
剩余未处理的任务我们可以通过more&#