【华为OD题库-076】执行时长/GPU算力-Java

题目

为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。

假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成。
输入描述:

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

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

第三个参数为任务数组,数字范围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个任务(1<=3)

第2秒开始进来2个任务,执行完成后剩余0个任务(2<=3)

第3秒开始进来3个任务,执行完成后剩余0个任务(3<=3)

第4秒开始进来4个任务,执行完成后剩余1个任务(4>3)

第5秒开始进来5+1个任务,执行完成后剩余3个任务(6>3)

第6秒开始进来3个任务,执行完成后剩余0个任务(3>=3)

所以结果为6。

使用curNum记录当前进来的任务数量,使用leaveNum记录当前秒结束后的剩余任务数量。

通过上述过程,可以看到结束的标志是:时间大于等于数组长度并且leaveNum为0。

题解

java 复制代码
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),查看当前专栏更新的所有题目。

相关推荐
lhldsg4 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
jason成都4 小时前
Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动
java·后端·spring
泡海椒4 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
Lifangyun_WD4 小时前
RTX 5090 与 RTX PRO 6000 怎么选?32GB 和 96GB 显存分别适合哪些 AI 任务
人工智能·aigc·gpu算力·芯片·gpu租赁
辰烨chenye4 小时前
LeetCode Hot 100 题解 · 二分篇
java·算法·leetcode
小羊没烦恼!5 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php
小荷才露尖尖角,早有蜻蜓立上头6 小时前
过滤器的4种创建方式
java
大圣编蚕6 小时前
Java ByteArrayInputStream 详解:从入门到实战
java·开发语言·算法
程序员阿明6 小时前
idea把插件啥的不默认放在C盘
java·ide·intellij-idea
linweidong7 小时前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理