2023华为OD机试真题 Java 实现【执行时长】【GPU算力】

 目录

题目

思路

考点

Code


题目

为了充分发挥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. 输入

格式1:Scanner sc = new Scanner (new BufferedInputStream(System.in));

格式2:Scanner sc = new Scanner (System.in);

在读入数据量大的情况下,格式1的速度会快些。

读一个整数: int n = sc.nextInt(); 相当于 scanf("%d", &n); 或 cin >> n; 

读一个字符串:String s = sc.next(); 相当于 scanf("%s", s); 或 cin >> s; 

读一个浮点数:double t = sc.nextDouble(); 相当于 scanf("%lf", &t); 或 cin >> t; 

读一整行: String s = sc.nextLine(); 相当于 gets(s); 或 cin.getline(...); 

判断是否有下一个输入可以用sc.hasNext()或sc.hasNextInt()或sc.hasNextDouble()或sc.hasNextLine()

2. 输出  

System.out.print(); 

System.out.println(); 

System.out.format();

System.out.printf();  

Code

import java.util.Scanner;
import java.util.*;
import java.util.stream.Stream;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
 
public class Main {
    public static int count = 0;
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
        int threshold = Integer.parseInt(in.nextLine());
        int n = Integer.parseInt(in.nextLine());
        int[] tasks = Arrays.stream(in.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        int flag = 0;

        //直接计算,无需多虑
        int i = 0;
        while(i= tasks[i] + flag) {
                flag = 0;
            } else {
                flag += tasks[i] -threshold;
            }
            count+=1;
            i += 1;
        }

        if(flag % threshold > 0){
            count += 1;
        }
        System.out.println(count +=(flag / threshold));
        return;
	}
}

 【华为od机试真题Python+JS+Java合集】【超值优惠】:Py/JS/Java合集

【华为od机试真题Python】:Python真题题库

【华为od机试真题JavaScript】:JavaScript真题题库

【华为od机试真题Java】:Java真题题库

【华为od机试真题C++】:C++真题题库

【华为od机试真题C语言】:C语言真题题库

【华为od面试手撕代码题库】:面试手撕代码题库

你可能感兴趣的:(华为od,java,gpu算力,华为od机试,开发语言)