首页 > 编程语言 >【华为OD机试真题】A卷-日志首次上报最多积分(JAVA)

【华为OD机试真题】A卷-日志首次上报最多积分(JAVA)

时间:2024-03-28 21:30:23浏览次数:23  
标签:JAVA logs java 真题 OD util int import 上报

一、题目描述

【华为OD机试真题】A卷-日志首次上报最多积分(JAVA)

题目描述:

日志采集是运维系统的的核心组件。日志是按行生成,每行记做一条,由采集系统分批上报。 如果上报太频繁,会对服务端造成压力;如果上报太晚,会降低用户的体验;如果一次上报的条数太多,会导致超时失败。为此,项目组设计了如下的上报策略: 
1、每成功上报一条日志,奖励1分 
2、每条日志每延迟上报1秒,扣1分 
3、积累日志达到100条,必须立即上报 给出日志序列,根据该规则,计算首次上报能获得的最多积分数

二、输入输出

输入描述:
按时序产生的日志条数 T1,T2...Tn,其中 1<=n<=1000,0<=Ti<=100
输出描述: 
首次上报最多能获得的积分数

三、参考示例

示例1 输入输出示例仅供调试,后台判题数据一般不包含示例 
输入:
1 98 1
输出:
98
说明:
T1 时刻上报得 1 分
T2 时刻上报得98分,最大
T3 时刻上报得 0 分
示例2 输入输出示例仅供调试,后台判题数据一般不包含示例
输入:
3 7 40 10 60
输出:
37
说明:
T1 时刻上报得 3 分
T2 时刻上报得 7 分
T3 时刻上报得 37 分,最大
T4 时刻上报得 -3 分
T5 时刻上报,因为已经超了100条的限制,所以只能上报100条,得 -23 分

四、解题思路

  1. 通过 Scanner 读取输入。
  2. 将输入的字符串转换为整数列表。
  3. 初始化加分、减分和结果数组。
  4. 计算每一步的加分和减分,并更新结果。
  5. 如果加分达到或超过100,则停止计算。
  6. 找出结果数组中的最大值并输出。

五、参考代码

/*
 * @Author: mgc
 * @Date: 2024-02-02 17:47:00
 * @LastEditors: Do not edit
 * @LastEditTime: 2024-02-02 17:48:55
 */

// import java.util.*;
// import java.util.HashMap;
// import java.util.Scanner;
// import java.util.regex.Matcher;
// import java.util.stream.Stream;
// import java.util.regex.Pattern;
// import java.util.stream.Collectors;

import java.util.Scanner;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static int maxMachine = 0;

    public static void main(String[] args) {
        // 处理输入
        Scanner in = new Scanner(System.in);
        List<Integer> logs = Arrays.stream(in.nextLine().split(" "))
                .map(Integer::parseInt)
                .collect(Collectors.toList());

        // 加分
        int[] plusScores = new int[logs.size()];
        plusScores[0] = logs.get(0);

        // 减分
        int[] minusScores = new int[logs.size()];
        minusScores[0] = 0;

        int[] results = new int[logs.size()];
        results[0] = logs.get(0);

        for (int i = 1; i < logs.size(); i++) {
            plusScores[i] = Math.min(100, plusScores[i - 1] + logs.get(i));
            minusScores[i] = minusScores[i - 1] + plusScores[i - 1];
            results[i] = plusScores[i] - minusScores[i];

            if (plusScores[i] >= 100) {
                break;
            }
        }

        int maxScore = 0; // 最大值
        for (int item : results) {
            if (item > maxScore) {
                maxScore = item;
            }
        }
        System.out.println(maxScore);
    }
}

六、华为OD机试真题汇总目录

    【华为OD机试】真题汇总A+B+C+D券(Python实现)

    【华为OD机试】真题汇总A+B+C+D卷(JAVA实现)

    【华为OD机试】真题汇总A+B+C+D卷(C++实现)

标签:JAVA,logs,java,真题,OD,util,int,import,上报
From: https://blog.csdn.net/u014481728/article/details/137120670

相关文章

  • Java案例:考试奖励(利用if..else if实现)
    目录1:题目2:分析3:代码展示1:题目小明快期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。2:分析1.键盘录入考试成绩2.由于奖励种类比较多.属于多......
  • JavaScript Fetch API请求和响应
    JavaScriptFetchAPI请求和响应 //加载进场工人不安全行为数据varloadAllWorkerUsafeData=setInterval(function(){consturl=`http://35.98.90.55/api/info?project=23`;fetch(url).then(response=>response.json()).then(data=>{varhandle_c......
  • Java 快递地址 自动识别地址省市区、手机号、姓名,地址自动补全省市区 速度高达1万/秒
    公司每天需处理大量快递地址,需要将一段字符串进行解析出省、市、区、街道、详细地址、手机、姓名。类似淘宝的地址自动识别,并且需要解析到具体的楼栋单元户室。研究了好久,终于写出了一个Java版的解析算法。下载地址:https://download.csdn.net/download/u011024436/89035851算......
  • [附源码]计算机毕业设计保险客户管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍在现代保险行业中,客户管理系统对于提升客户服务水平、增强客户满意度和构建长期客户关系至关重要。随着大数据和人工智能技术的发展,保险公司迫切需要一个先进的......
  • [附源码]计算机毕业设计技术文档管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍技术文档管理系统是企业信息化建设的重要组成部分,它关系到知识的积累、共享和管理效率。随着企业规模的扩大和业务的多样化,传统的文件管理方式已无法满足快速检......
  • 【LeetCode】1607. 没有卖出的卖家
    题目表:Customer+---------------+---------+|ColumnName|Type|+---------------+---------+|customer_id|int||customer_name|varchar|+---------------+---------+customer_id是该表具有唯一值的列。该表的每行包含网上商城的每一位顾客的......
  • 进入虚拟机的annocoda3的bin目录
    首先进入到anacoda3的bin目录下然后输入sourceactivate命令来打开anacodapromat命令窗口输入jupyternotebookpassword来设置密码,我就设置了123456虚拟机搭建jupyternotebook服务_虚拟机安装jupyternotebook-CSDN博客......
  • 【LeetCode】1873. 计算特殊奖金
    题目表:Employees+-------------+---------+|列名|类型|+-------------+---------+|employee_id|int||name|varchar||salary|int|+-------------+---------+employee_id是这个表的主键(具有唯一值的列)。此表的每一行......
  • Java中的Lambda
    一、Lambda是什么?Lambda表达式是JDK8开始新增的一种语法形式,其作用为简化匿名内部类的代码写法,使用Lambda可以使代码更加简洁格式:(被重写方法的形参)->{被写方法的方法体代码}二、使用步骤原来我们会使用匿名内部类来实现接口,例如这样publicclasstest{publicst......
  • Java接口应用代码示例
    1.概念在Java中接口是一个抽象的数据类型,在接口里面我们会定义类应该遵循的行为规范,并不会去具体实现,只是告诉了接了该接口的类一定要实现些什么方法。接口中可以有常量、方法和嵌套类型的声明(就是在该接口内部定义其他类型,如接口、类、枚举)。一个接口可以被多个类去实现,一......