🌈 Scala 实现
题目描述:
- 为了充分发挥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
代码:
def main(args: Array[String]): Unit = {
// 获取输入
val m = StdIn.readLine().toInt
val n = StdIn.readLine().toInt
val NTime = StdIn.readLine().split(" ").map(_.toInt).toList
var res = new ListBuffer[Int]
var resSorted = new ListBuffer[Int]
// 处理第一批
for (i <- 0 until m) {
res += NTime(i)
}
// 处理剩下批次,一次替换最小值
for (i <- m until n) {
resSorted = res.sorted
resSorted(0) += NTime(i)
}
// 输出结果
println(resSorted.max)
}
❤️ END ❤️