日志采集是运维系统的核心组件。日志按行生成,每行记做一条,由采集系统分批上报。 为此,项目组设计了如下的上报策略: 1、每成功上报一条日志,奖励1分 2、每条日志每延迟上报1秒,扣1分 3、积累日志达到100条,必须立即上报 给出日志序列,根据该规则,计算首次上报能获得的最多积分数,使用java代码编写 输入描述:按时序产生的日志条数T1,T2...Tn,其中1<=n<=1000,0<=Ti<=100 输出描述:首次上报最多能获得的积分数 示例 输入: 1 98 1 输出: 98 说明: 采集系统第2个时刻上报,可获得最大积分(98+1)-1=98
时间: 2023-05-15 20:04:37 浏览: 99
【日志&运维】日志采集系统概述
以下是Java代码实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] logs = new int[n];
for (int i = 0; i < n; i++) {
logs[i] = scanner.nextInt();
}
int score = 0;
int delay = 0;
for (int i = 0; i < n; i++) {
if (logs[i] >= 100) {
score += logs[i];
delay = 0;
} else {
score += logs[i] - delay;
delay++;
}
}
System.out.println(score);
}
}
解释一下代码的思路:
首先读入日志序列,然后遍历序列,对于每一条日志,如果它的数量达到了100条,那么立即上报,获得所有的积分,并将延迟时间重置为0;否则,将该条日志的数量减去延迟时间,作为该条日志的积分,并将延迟时间加1。最后将所有的积分相加,输出即可。
阅读全文