一、题目描述
【华为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 分
四、解题思路
- 通过
Scanner
读取输入。- 将输入的字符串转换为整数列表。
- 初始化加分、减分和结果数组。
- 计算每一步的加分和减分,并更新结果。
- 如果加分达到或超过100,则停止计算。
- 找出结果数组中的最大值并输出。
五、参考代码
/*
* @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实现)
标签:JAVA,logs,java,真题,OD,util,int,import,上报 From: https://blog.csdn.net/u014481728/article/details/137120670