LeetCode刷题19-执行时长

 

 方案一:用例通过率90%以上

 1 package exam;
 2 
 3 import java.util.Scanner;
 4 
 5 /**
 6  * 功能描述
 7  *
 8  * @author ASUS
 9  * @version 1.0
10  * @Date 2022/8/7
11  */
12 public class Main01 {
13     public static void main(String[] args) {
14         Scanner scanner = new Scanner(System.in);
15         // 一次最多执行个数
16         Integer max = Integer.parseInt(scanner.nextLine());
17         // 任务数组长度
18         String length = scanner.nextLine();
19         // 任务数组
20         String s = scanner.nextLine();
21         String[] split = s.split(" ");
22         // 最少耗时
23         int time = 0;
24         int task = 0;
25         // 当前任务累计数
26         for (int i = 0; i < split.length; i++) {
27             Integer s1 = Integer.parseInt(split[i]);
28             if (s1 >= max) {
29                 task = task + s1 - max;
30                 time++;
31             }
32 
33             if (s1 < max) {
34                 int temp = task + s1 - max;
35                 task = temp >= 0 ? temp : 0;
36                 time++;
37             }
38         }
39         // 还有未执行的任务需要再花时间执行
40         int i = 0;
41         if (task > 0) {
42             if (task % max > 0) {
43                 i = task / max + 1;
44             } else {
45                 i = task / max;
46             }
47         }
48         System.out.println(Math.addExact(time, i));
49     }
50 }

 

posted @ 2022-08-09 23:35  chch213  阅读(70)  评论(0编辑  收藏  举报