统计业务流量的毫秒级峰值 - 华为机试真题题解

news2025/2/23 12:03:02

考试平台: 时习知

分值: 200分(第二题)

考试时间: 两小时(共3题)

alt

题目描述

业务模块往外发送报文时,有时会出现网卡队列满而丢包问题,但从常规的秒级流量统计结果看,业务的流量并不大。

实际上可能是业务出现了毫秒级的流量突出,导致短时间内超过出了网卡的处理能力;而这种突发持续时间并不长,因此,秒级统计结果呈现不出异常。

现给出一段时间内各个时间点业务发送的报文数,请统计出此段时间内流量的毫秒级峰值,即1毫内业务发送的最大报文数 (时间戳相差小于1毫秒范围的发送报文数,不含时间戳相差正好为1毫秒的时刻)

输入

第1行:n,标示这段时间内有多少条记录 (即后续还有n行数据),n的取值范围为[1,1000000]

第2行开始,每行的数据格式为:t m,标示为某个时间点t(随着行数的增加,t会随之变大),业务发送的报文数m,

其中,t的单位为微秒,取值范围为[1,268435455],1毫秒等于1000微秒;

m的取值范围为[1,1000]

输出

m,表示这段时间内流量的毫秒级峰值,即1毫秒内业务发送的最大报文数(时间戳相差小于1毫秒范围的发送报文数,不含时间戳相差正好为1毫秒的时刻)

示例1

输入:
3
1024 100
1050 100
2100 150

输出:
200

解释: 
前两条记录在一个毫秒内,报文数为200,第2条和第3条记录不属于同个毫秒内

示例2

输入:
3
1024 100
1050 100
2100 250

输出:
250

解释: 
第3条记录和前面的记录不在一个时间点内,而它的值最大

Python 题解

统计一段时间内毫秒级流量峰值的程序。以下是代码的一些解释:

  1. from collections import deque 引入双端队列(deque)来维护时刻和报文数的记录。
  2. n = int(input()) 获取输入,表示有多少条记录。
  3. 初始化 max_ans 为最大结果值,sum 为队列中的总报文数,q 为双端队列。
  4. 使用循环遍历每一条记录,获取时刻 t 和报文数 m
  5. 将时刻和报文数添加到队列中,并更新总报文数 sum
  6. 使用 while 循环,判断最早的报文是否和当前时刻相差大于等于1毫秒,如果是,则从队列中移除,并更新总报文数 sum
  7. 在每次循环内都尝试更新最大值 max_ans,保留当前时刻1毫秒内的报文总数的最大值。
  8. 循环结束后,输出最终的结果 max_ans

这个程序通过使用双端队列来维护1毫秒内的报文数,实时更新最大值。通过循环遍历所有记录,可以得到最终的结果。

Python 题解

from collections import deque

n = int(input())

# 最大的结果值, 队列中的总报文数
max_ans, sum = 0, 0
q = deque()

for _ in range(n):
    # 时刻t, 报文数m
    t, m = map(int, input().split())
    q.append((t, m))
    sum += m

    # 最早的报文和当前时间不在 1 毫秒内,因此抛弃
    while q and t - q[0][0] >= 1000:
        sum -= q.popleft()[1]

    # 尝试更新最大值
    max_ans = max(max_ans, sum)


print(max_ans)

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

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

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

相关文章

基础内容哦!!!吴恩达deeplearning.ai:利用计算图求导(反向传播)

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 文章目录 一个小型神经网络的例子利用计算图逐步计算价值函数J利用计算图求出价值函数的导数 计算图是深度学习中的一个关键概念,它也是Tensorflow等编程框架自动计算神经网络导…

小而巧的数字压缩算法:zigzag

阅读facebook开源的 RPC(Remote Procedure Call) 框架thrift源代码的时候,本来是在阅读框架,却不小心被 zigzag 这个钻石般闪耀的代码吸引。后来去百度搜索zigzag,却得到满屏图像相关的一个算法(看来起名字…

李沐动手学习深度学习——3.1练习

字写的有点丑不要介意 由于公式推导烦的要死,所以手写形式,欢迎进行讨论,因为我也不知道对错

HarmonyOS—端云一体化组件

概述 DevEco Studio还为您提供多种端云一体化组件。集成端云一体化组件后,您只需进行简单配置即可向应用用户提供登录、支付等众多功能。 登录组件 您可使用端云一体化登录组件向应用用户提供登录和登出功能,目前支持帐号密码登录、手机验证码登录、以…

在VMware中安装CentOS 7并配置Docker

VMware安装CentOS 7 一、介绍 该文章介绍如何使用启动U盘在虚拟机里面安装系统,虚拟机版本为VMware Workstation 16 pro,Linux版本为CentOS Linux release 7.9.2009 (Core)。 二、安装 1、创建虚拟机 点击创建新的虚拟机 选择典型就可以了&#xf…

【C#】忽略大小的替换字符串

结果 代码 string a"aAAAAAAaBBaaCC"; string b Strings.Replace(a, "a", "D", 1, -1, CompareMethod.Text);

【Python】Code2flow学习笔记

1 Code2flow介绍 Code2flow是一个代码可视化工具库,旨在帮助开发人员更好地理解和分析代码: 可以将Python代码转换为流程图,以直观的方式展示代码的执行流程和逻辑结构。具有简单易用、高度可定制化和美观的特点,适用于各种代码…

浅析扩散模型与图像生成【应用篇】(四)——Palette

4. Palette: Image-to-Image Diffusion Models 该文提出一种基于扩散模型的通用图像转换(Image-to-Image Translation)模型——Palette,可用于图像着色,图像修复,图像补全和JPEG图像恢复等多种转换任务。Palette是一种…

曲线的凹凸性与拐点【高数笔记】

1.什么是曲线的凹凸性 2.什么是曲线的拐点 3.拐点的特征 4.拐点与驻点有什么不同 5.拐点的表示方法与驻点有什么不一样 6.拐点与凹凸区间怎么求

Servlet 新手村引入-编写一个简单的servlet项目

Servlet 新手村引入-编写一个简单的servlet项目 文章目录 Servlet 新手村引入-编写一个简单的servlet项目一、编写一个 Hello world 项目1.创建项目2.引入依赖3.手动创建一些必要的目录/文件4.编写代码5.打包程序6.部署7.验证程序 二、更方便的处理方案(插件引入&am…

c++阶梯之内存管理

目录 1.c/c内存分布 2. C语言中的动态内存管理方式:malloc/calloc/realloc/free 3.c的内存管理方式 3.1 new/delete操作内置类型 3.2 new/delete操作自定义类型 3.3 实践中总结new与malloc的区别 1. new的用法比malloc更加的简单 2. new可以控制初始化&am…

C# OpenVINO Nail Seg 指甲分割 指甲检测

目录 效果 模型信息 项目 代码 数据集 下载 C# OpenVINO Nail Seg 指甲分割 指甲检测 效果 模型信息 Model Properties ------------------------- date:2024-02-29T16:41:28.273760 author:Ultralytics task:segment version&#…

遥感、航拍、影像等用于深度学习的数据集集合

遥感图像的纹理特征异常繁杂,地貌类型多变,人工提取往往存在特征提取困难和特征提取不准确的问题,同时,在这个过程中还会耗费海量的人力物力。随着计算力的突破、数据洪流的暴发和算法的不断创新,在具有鲜明“大数据”…

Python爬虫——Urllib库-上

这几天都在为了蓝桥杯做准备,一直在刷算法题,确实刷算法题的过程是及其的枯燥且枯燥的。于是我还是决定给自己找点成就感出来,那么Python的爬虫就这样开始学习了。 注:文章源于观看尚硅谷爬虫视频后笔记 目录 Urllib库 基本使…

Html零基础入门教程(非常详细)

文章目录 1.认识HTML2.html 框架3.HTML常见标签4.HTML语法特征5.列表 1.认识HTML html是超文本标记语言: 目前最新版本是html5,由w3c(万维网联盟)完成标准制定。 声明文档的类型是html5 超文本标记语言。 HTML ,全称“Hyper Text Markup Language(超文…

微信小程序图片展示淡入淡出纯WXSS实现,无需使用消耗性能的动画引擎

进入下面小程序可以体验效果: 以下代码的淡入淡出是切换图片的时候动画效果显示的。需要用其他方式,可以基于这个wxss修改即可 原理就是,图片默认样式的opacity 是 0,通过变量改变样式的opacity即可,然后需要有transi…

Vue纯前端实现链接生成二维码并支持下载

你好,我是小白Coding日志,一个热爱技术的程序员。在这里,我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客,一起在技术的世界里探索前行吧! 在现代 Web 应用…

(C语言)Sleep函数,system函数,数组练习,详解与运用

一维数组详解:http://t.csdnimg.cn/zahZF 二维数组详解:http://t.csdnimg.cn/h2mLe 我们看过可一维数组与二维数组,现在我们来进行简单的练习。 题目:编写代码,演⽰多个字符从两端移动,向中间汇聚 1. …

DFS之剪枝与优化

剪枝 1.优化搜索顺序:在大部分情况下,我们应该优先搜索分支较少的结点 2.排除等效冗余(在不考虑顺序的情况下,尽量用组合的方式来搜索) 3.可行性剪枝 4.最优性剪枝 5.记忆化搜索 165. 小猫爬山 - AcWing题库 import …

【快速上手QT】06-检测按键检测鼠标

今天聊聊事件,实际上我们在前两篇文章中就已经接触到了事件,分别是定时器事件和绘画事件,今天我们再来看看其他的事件。 我们打开QT助手,在QWidget的界面中找到下图中的地方。 我们可以看到很多函数的结尾都是Event,那…