免费网站为何收录比较慢,教育培训平台,谁有做网站比较厉害的,去除wordpress版本号题目 为了充分发挥GPU算力#xff0c;需要尽可能多的将任务交给GPU执行#xff0c;现在有一个任务数组#xff0c;数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。 假设GPU最多一次执行n个任务#xff0c;一次执行耗时1秒#xff0c;在保证GPU不空闲情况下…题目 为了充分发挥GPU算力需要尽可能多的将任务交给GPU执行现在有一个任务数组数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。 假设GPU最多一次执行n个任务一次执行耗时1秒在保证GPU不空闲情况下最少需要多长时间执行完成。 输入描述: 第一个参数为GPU一次最多执行的任务个数取值范围[110000] 第二个参数为任务数组长度取值范围[110000] 第三个参数为任务数组数字范围[1,10000] 输出描述: 执行完所有任务最少需要多少秒。 示例1 输入输出示例仅供调试后台判题数据─般不包含示例 输入 3 5 1 2 3 4 5 输出 6 说明 —次最多执行3个任务最少耗时6s 示例2 输入输出示例仅供调试后台判题数据─般不包含示例 输入 4 5 5 4 1 1 1 输出 5 思路 以示例1为例每秒任务执行过程如下 第1秒开始进来1个任务执行完成后剩余0个任务13 第2秒开始进来2个任务执行完成后剩余0个任务23 第3秒开始进来3个任务执行完成后剩余0个任务33 第4秒开始进来4个任务执行完成后剩余1个任务43 第5秒开始进来51个任务执行完成后剩余3个任务63 第6秒开始进来3个任务执行完成后剩余0个任务33 所以结果为6。 使用curNum记录当前进来的任务数量使用leaveNum记录当前秒结束后的剩余任务数量。 通过上述过程可以看到结束的标志是时间大于等于数组长度并且leaveNum为0。 题解
package hwod;import java.util.Scanner;public class ExecuteTime {public static void main(String[] args) {Scanner sc new Scanner(System.in);int maxTask sc.nextInt();int n sc.nextInt();int[] nums new int[n];for (int i 0; i n; i) {nums[i] sc.nextInt();}System.out.println(executeTime(nums, maxTask));}private static int executeTime(int[] nums, int maxTask) {int res 0;int curNum, leaveNum 0;while (res nums.length || leaveNum ! 0) {curNum leaveNum;if (res nums.length) curNum nums[res];leaveNum curNum maxTask ? curNum - maxTask : 0;res;}return res;}
}
推荐
如果你对本系列的其他题目感兴趣可以参考华为OD机试真题及题解JAVA查看当前专栏更新的所有题目。