题目
日志采集是运维系统的的核心组件。日志是按行生成,每行记做一条,由采集系统分批上报。
如果上报太频繁,会对服务端造成压力;
如果上报太晚,会降低用户的体验;
如果一次上报的条数太多,会导致超时失败。
为此,项目组设计了如下的上报策略:
每成功上报一条日志,奖励1分
每条日志每延迟上报1秒,扣1分
积累日志达到100条,必须立即上报
给出日志序列,根据该规则,计算首次上报能获得的最多积分数。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
List<Integer> list = new ArrayList<>();
while (in.hasNextInt()){
list.add(in.nextInt());
}
// 记录之前的数量
int preNum = 0;
// 记录之前的分值
int preScore = 0;
// 最大总分
int maxScore = 0;
for (Integer num : list) {
// 当前+之前的数量小于等于100
if (num+preNum<=100){
// 计算得分
maxScore = Math.max(maxScore, num+preScore);
// 计算