编辑代码

// 为了充分发挥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])