题目描述

为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行。现在有一个任务数组,数组元素表示在这1s内新增的任务个数,且每秒都有新增任务。假设GPU最多一次执行n个任务,一次执行耗时1s,在保证GPU不空闲的情况下,最少需要多长时间执行完成。

输入描述

第一个参数为GPU最多执行的任务个数,取值范围1 ~ 10000

第二个参数为任务数组的长度,取值范围1 ~ 10000

第三个参数为任务数组,数字范围1 ~ 10000

输出描述

执行完所有任务需要多少秒

Java代码

public class Main {
  public static void main(String[] args) {
    try (Scanner scanner = new Scanner(System.in)) {
      int n = scanner.nextInt();
      int len = scanner.nextInt();
      int[] jobCount = new int[len];
      for (int i = 0; i < len; i++) {
        jobCount[i] = scanner.nextInt();
      }
      solution(n, jobCount);
    }
  }

  private static void solution(int n, int[] jobCount) {
    int time = 0;
    int remaining = 0;
    for (int count : jobCount) {
      if (count + remaining > n) {
        remaining = count + remaining - n;
      } else {
        remaining = 0;
      }
      time++;
    }
    time += remaining / n;
    if (remaining % n > 0) {
      time++;
    }
    System.out.println(time);
  }
}
最后修改日期: 2023年3月28日