// 为了充分发挥GPU算力,
// 需要尽可能多的将任务交给GPU执行,
// 现在有一个任务数组,
// 数组元素表示在这1s内新增的任务个数,
// 且每秒都有新增任务,
// 假设GPU最多一次执行n个任务,
// 一次执行耗时1s,
// 在保证GPU不空闲的情况下,最少需要多长时间执行完成。
// 输入描述
// 第一个参数为GPU最多执行的任务个数,取值范围1 ~ 10000
// 第二个参数为任务数组的长度,取值范围1 ~ 10000
// 第三个参数为任务数组,数字范围1 ~ 10000
// 输出描述
// 执行完所有任务需要多少秒
function getSecond(parallelTasks,length,taskArray){
let sumSecond = 0
let waitTask = 0
for(let i= 0 ; i < taskArray.length ; i++){
sumSecond = sumSecond+1
waitTask = waitTask +taskArray[i]
if(taskArray[i] < parallelTasks){
waitTask =0
}else{
waitTask = waitTask-3
}
}
if(waitTask>0){
sumSecond = sumSecond +parseInt(waitTask/3) + (waitTask%3 === 0 ? 0 : 1)
}
console.log(sumSecond)
}
getSecond(3,5,[1,2,3,4,5,6,7,8])