华为OD机试 - 日志采集系统(Java 2024 E卷 100分)

博客详细解析了一道华为在线开发者测试(OD)的Java编程题目,涉及日志采集系统的上报策略。题目要求根据日志条数和延迟时间计算首次上报所能获得的最高积分。解题思路包括读取输入、遍历计算积分,并提供了Java算法源码和效果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、题目描述

日志采集是运维系统的的核心组件。日志是按行生成,每行记做一条,由采集系统分批上报。

  • 如果上报太频繁,会对服务端造成压力;
  • 如果上报太晚,会降低用户的体验;
  • 如果一次上报的条数太多,会导致超时失败。

为此,项目组设计了如下的上报策略:

  1. 每成功上报一条日志,奖励1分
  2. 每条日志每延迟上报1秒,扣1分
  3. 积累日志达到100条,必须立即上报

给出日志序列,根据该规则,计算首次上报能获得的最多积分数。

二、输入描述

按时序产生的日志条数T1,T2…Tn,其中1 <= n <= 1000,0 <=Ti <= 100。

三、输出描述

首次上报最多能获得的积分数。3222

四、解题思路

  1. 读取输入的整数数组 arr;
  2. 初始化变量 count 和 max 为 0,用于记录累积日志条数和最大积分数;
  3. 遍历数组元素的下标 i,从 0 到 arr.length-1;
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    哪 吒

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值