华为机试题-日志限流

题目

某软件系统会在运行过程中持续产生日志,系统每天运行 N 单位时间,运行期间每单位时间产生的日志条数保存在数组 records 中。records[i]表示第 i 单位时间内产生日志条数。由于系统磁盘空间限制,每天可记录保存的日志总数上限为 total 条。如果一天产生的日志总条数大于 total,则需要对当天内每单位时间产生的日志条数进行限流后保存, 请计算每单位时间最大可保存日志条数 limit,以确保当天保存的总日志条数不超过total,对于单位时间内产生日志条数不超过 limit 的日志全部记录保存;对于单位时间内产生日志条数超过 limit 的日志,则只记录保存 limit 条日志;如果一天产生的日志条数总
和小于等于 total,则不需要启动限流机制,result 为-1。
请返回 result 的最大值或者-1。
解答要求
时间限制:C/C++1000ms,其他语言:2000ms 内存限制:C/C++ 256MB,其他语
言:512MB
输入
第一行为系统某一天运行的单位时间数 N,1<=N<=10^5
第二行为表示这一天每单位时间产生的日志数量的数组 records, 0<= records[i]<=10^5 第三行为系统一天可以保存的总日志条数 total。 1 <= total<= 10^9
输出
每单位时间内最大可保存的日志条数 limit, 如果不需要启动限流限制,返回-1. 样例 1
输入:
6
3 3 8 7 10 15
40
输出:
9
解释:系统一天运行 6 单位时间,输出的总日志条数为 3+3+8+7+10+15=46,每天可保
存的日志总数上线为 40 条,需要进行限制,当天 result = 9 时,单位时间产生超过 9
条的日志只能保存 9 条日志,保存的总日志条数为:3+3+8+7+9+9=39,小于 40 条。
当 result =10 时,需要保存的日志条数为:3+3+8+7+10+10=41,超过了保存上限。所
以每单位时间最大保存日志条数为 9。
样例 2
输入:
5
3 3 5 7 9
40
输出:-1
解释:系统一天运行 5 单位时间产生的总日志条数为 3+3+5+7+9=27,小于一天可保
存的日志条数
总和,不需要进行限制,返回-1. 提示
1<=N <=10^5
0 <= records[i]<=10^5
1 <= total <=10^9

参考代码

考察二分查找,普通查找的话可能会超时

package RealTest;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;/*** @ClassName logFlowLimit* @Description TODO* @Author 21916* @Date 2024/3/14 9:20*/public class logFlowLimit {public static void main(String[] args) throws IOException {Scanner sc= new Scanner(System.in);int N= sc.nextInt();int[] arr  =new int[N];for(int i=0;i<N;i++){arr[i] =sc.nextInt();}int total = sc.nextInt();if(Arrays.stream(arr).sum()<=total){System.out.println(-1);return ;}// 使用二分查找来确定合适的limitint left = 1; // 最小可能的limit,至少为1int right = 100000; // 最大可能的limit,根据题目条件为10^5int result = -1;while (left <= right) {int mid = left + (right - left) / 2;long currentLogs = calculateLogs(arr, mid);if (currentLogs <= total) {result = mid; // 当前limit可行,尝试增大limit看是否能找到更大的可行解left = mid + 1;} else {right = mid - 1; // 当前limit不可行,需要减小limit}}System.out.println(result);}public static long calculateLogs(int[] records, int limit) {long totalLogs = 0;for (int record : records) {totalLogs += Math.min(record, limit);}return totalLogs;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/743940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单的网页才好学习嘛!!!

做一个个人博客第一步该怎么做&#xff1f; 好多零基础的同学们不知道怎么迈出第一步。 那么&#xff0c;就找一个现成的模板学一学呗&#xff0c;毕竟我们是高贵的Ctrl c v 工程师。 但是这样也有个问题&#xff0c;那就是&#xff0c;那些模板都&#xff0c;太&#xff01;…

LLVM源码分析

LLVM源码分析 LLVM IR 使用LLVM IR编程 LLVM语言参考手册 llvm-pass-tutorial 推荐 LLVM CMU 教案 深入剖析-iOS-编译-Clang—LLVM LLVM_proj LLVM编程索引 llvm源码浏览带跳转 llvm-clang-samples llvm-tutor A collection of LLVM passes (with tests and build…

idea中操作Git将本地仓库代码完整提交到Gittee中

文章目录 1.在idea中打开你的项目根目录&#xff0c; idea中vcs -> create Git Repository2.选中你的项目所在的目录3. git commit -m"你的备注"4. 直接强制本地仓库覆盖远程仓库的东西5.或者直接使用git 进行这个操作 1.在idea中打开你的项目根目录&#xff0c; …

【Node.js】-下载、安装和简单使用

概述 Node.js是一个基于Chrome V8引擎的JavaScript运行环境&#xff0c;它使得JavaScript能够在服务器端运行。这意味着开发者可以使用JavaScript来编写服务器端的程序&#xff0c;从而处理来自客户端的请求和响应。Node.js的出现极大地丰富了Web开发的手段和方式&#xff0c;…

C语言(循环)单元练习二

一、单项选择题 1. 以下程序的输出结果是______。 #include<stdio.h> void main() { int num0; while(num<2) { num; printf("%d",num); } } A. 2 B. 1 C. 123 D. 12 参考标准答案 :C 2. 两次运行下面…

【Python/crawl】如何使用Python爬虫将一系列网页上的同类图片下载到本地

【需求】 从网页https://www.zhainq.com/%e7%be%8e%e5%a5%b3%e5%86%99%e7%9c%9f%e6%9c%ba%e6%9e%84/%e6%97%a5%e6%9c%ac%e7%be%8e%e5%a5%b3%e5%86%99%e7%9c%9f/109012.html 开始&#xff0c;有十七页&#xff0c;每页都有大漂亮“小濑田麻由”的若干图片&#xff0c;想要将其…

搭建 zabbix 监控环境

搭建 zabbix 监控环境 Zabbix 简介… 5 1.1. 介绍… 5 1.2. zabbix 的主要特点&#xff1a;…5 1.3. Zabbix 主要功能&#xff1a;…6CentOs7… 7 2.1. 虚拟机安装操作步骤… 7 2.2. 网卡配置… 8 1&#xff0e; 打开设置…8 2&#xff0e; 修改配置文件…8 3&#xff0e; 使用…

Gitee的注册和代码提交(附有下载链接)

目录 一、Git的下载和安装二、安装图形化界面工具三、在Gitee上创建仓库四、如何把仓库开源五、Clone远程仓库到本地六、拷贝代码到本地的仓库七、Add-Commit-Push到远程仓库八、可能出现的问题8.1 建议在本地仓库直接创建项目8.2 第一次Push可能出现的问题8.3 怎么删除Gitee上…

Element-Plus: Select组件实现滚动分页加载

Element-Plus的select组件并没有自带滚动分页加载的功能&#xff0c;其虽然提供了自定义下拉菜单的底部的方式可以自定义上一页及下一页操作按钮的方式进行分页加载切换&#xff1a; 但如果不想通过点击分页按钮的方式&#xff0c;利用滚动触底进行下一页加载的话&#xff0c;…

3.4 XPath、Beautiful Soup 与 Pyquery的基本使用总结和比较

目录 一、三者共同点 二. 三者差异与基本使用 (一). 使用示例&#xff1a; (二). XPath (三). Beautiful Soup (四). pyquery (五). 三者差异 三.练习实战 一、三者共同点 导入&#xff0c;获得网页文本&#xff0c;str 和 bytes 类型均可作为参数传入。 import reque…

http postman

地址 &#xff1a; https://oaqas.lingyiitech.com:9800/auth-api/openapi/dingtalk-oa/topapi/message/corpconversation/asyncsend_v2?token40216bf0ceea8e56b778d537b20f5d23 https://oaqas.lingyiitech.com:9800/auth-api/openapi/dingtalk-oa/topapi/message/corpconve…

2024年太原等保测评中心名单看这里!

开年来&#xff0c;不少太原小伙伴打算做等保了。大家都在问&#xff0c;目前太原等保测评中心有哪些&#xff1f;在哪里丫&#xff1f;这不我们小编就给大家整理一下&#xff0c;仅供参考哈&#xff01; 2024年太原等保测评中心名单看这里&#xff01; 序号&#xff1a;1 …

Python入门:从基础到实践

&#x1f40d; Python入门&#xff1a;从基础到实践 &#x1f680; &#x1f31f; 引言 Python&#xff0c;作为一种高级编程语言&#xff0c;以其简洁明了的语法和强大的功能而广受欢迎。无论你是编程新手还是希望学习新语言的开发者&#xff0c;Python都是一个极佳的选择。…

接水问题(C++)

题意 学校里有一个水房&#xff0c;水房里一共装有 m个龙头可供同学们打开水&#xff0c;每个龙头每秒钟的供水量相等&#xff0c;均为 1。   现在有 n名同学准备接水&#xff0c;他们的初始接水顺序已经确定。 将这些同学按接水顺序从 1到 n编号&#xff0c;i号同学…

[C++]20.实现红黑树。

实现红黑树 一.基本概念&#xff1a;1.红黑树的概念&#xff1a;2.红黑树的性质&#xff1a; 二.实现红黑树&#xff1a;1.基本结构&#xff1a;2.插入节点的多种情况&#xff1a;1.叔叔存在且为红&#xff1a;2.叔叔不存在/存在且为黑(单旋变色)3.叔叔不存在/存在且为黑(多旋&…

C/C++中{}的用法总结(全)

C基础专栏&#xff1a;http://t.csdnimg.cn/UjhPR 目录 1.定义初始化列表&#xff08;Initializer List&#xff09; 2.类成员初始化列表 3.无默认构造函数的类的默认初始化&#xff08;C11 及以后版本&#xff09; 4.初始化器列表构造函数&#xff08;C11 及以后版本&…

计算机网络——分组延时、丢失和吞吐量

分组延迟是指从发送方发送数据包到接收方接收到数据包所经历的时间。 分组时延的四种类型&#xff1a; 传输时延、传播时延、排队时延、节点处理时延。 传输时延&#xff1a;传输时延是指分组从发送方到接收方所需的时间&#xff0c;取决于分组的长度和链路的传输速率。传输时…

centos配置nginx自动启动

查看是否存在相应的服务&#xff0c;如下&#xff0c;有nginx.service [rootnode142 ~]# systemctl list-unit-files |grep nginx nginx.service disabled 第一步&#xff1a;进入到/lib/systemd/system/目录 cd /lib/systemd/system 第二步&#xff1a;创建nginx.service文…

Docker学习之镜像管理(超详解析)

Docker镜像生命周期&#xff08;可以把docker镜像理解为虚拟机镜像&#xff09; 实验内容&#xff1a; 搜索官方仓库镜像 [rootlocalhost ~]# docker search busybox //以查找busybox为例 搜索说明&#xff1a;name镜像名称 description镜像说明 stars点赞数量 official…

四川宏博蓬达法律咨询有限公司:法律服务的行业翘楚

在当今社会&#xff0c;法律服务已经成为人们生活中不可或缺的一部分。随着法律意识的提高&#xff0c;选择一家专业、可靠的法律咨询公司显得尤为重要。四川宏博蓬达法律咨询有限公司&#xff0c;作为业内的佼佼者&#xff0c;以其卓越的服务质量和广泛的业务范围&#xff0c;…