LeetCode刷题19-执行时长


LeetCode刷题19-执行时长

 

 

 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 % 3 > 0) {
43                 i = task / 3 + 1;
44             } else {
45                 i = task / 3;
46             }
47         }
48         System.out.println(Math.addExact(time, i));
49     }
50 }

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/279442.html

(0)
上一篇 2022年8月8日
下一篇 2022年8月8日

相关推荐

发表回复

登录后才能评论