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 }
本文来自博客园,作者:chch213,转载请注明原文链接:https://www.cnblogs.com/chch213/p/16560338.html