资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

华为OD机试真题 Java 实现【日志采集系统】【2023Q1 100分】

Java 更新时间: 发布时间: 计算机考试归档 最新发布

华为OD机试真题 Java 实现【日志采集系统】【2023Q1 100分】

一、题目描述

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

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

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

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

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

二、输入描述

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

三、输出描述

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

四、Java算法源码

public static void main(String[] args) {    Scanner sc = new Scanner(System.in);    String line = sc.nextLine();    String[] arr = line.split(" ");    int count = 0;    int max = 0;    for (int i = 0; i < arr.length; i++) {        int num = Integer.valueOf(arr[i]);        if (num == 0) {            continue;        }        count += num;        int score = 0;        for (int j = 0; j <= i; j++) {            if (count > 100 && i == j) {                score += num - (count - 100);            } else {                score += Integer.valueOf(arr[j]) - (i - j) * Integer.valueOf(arr[j]);            }        }        if (score > max) {            max = score;        }        if (count >= 100) {            break;        }    }    System.out.println(max);}

五、效果展示

1、输入

2 95 3

2、输出

95

3、说明

如果第2个时刻上报,可获得最大积分(2 + 95)- 2 * 1 = 95。


🏆下一篇:华为OD机试真题 Java 实现【货币单位换算】【2023Q1 100分】

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1094802.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【华为OD机试真题 Java 实现【日志采集系统】【2023Q1 100分】】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2