华为OD机试真题 新系统 - API请求日志去重分析 (Java/Py/C/C++/Js/Go)

API请求日志去重分析

2026 华为OD机试真题 4月15日华为OD上机新系统考试真题 100 分题型

点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解

题目描述

某微服务系统的日志监控平台需要分析API调用记录。日志中包含大量重复的请求记录,为了优化存储和后续分析,需要对相邻的重复请求进行合并统计。

具体规则如下:

1.日志按时间顺序排列,每条记录包含请求路径和响应时间

2.如果连续出现相同的请求路径,需要将这些记录合并为一条

3.合并后的记录需要统计该路径连续出现的次数,并保留所有响应时间的平均值

4.相同路径但被其他路径分隔的,视为不同的记录组,需要分别合并

请实现一个函数,对给定的日志数据进行去重合并处理。

输入描述

输入请求路径path数组,按时间顺序排列

输入对应的响应时间responseTimes数组(毫秒)

补充

  • 0≤paths.length≤10^5
  • 0≤responseTimes.length≤10^5
  • paths.length==responseTimes.length
  • 1≤responseTimes[i]≤10^4
  • 路径长度不超过 100个字符

输出描述

按顺序输出每个记录组信息,每个记录组包含以下三个元素

  • 该路径在输入数组中首次出现索引
  • 该路径连续出现的次数
  • 该组路径的平均响应时间(向下取整)

示例1

输入

/api/user,/api/user,/api/order,/api/user,/api/order,/api/order
100,200,150,300,250,350


输出

0,2,150 2,1,150 3,1,300 4,2,300


说明

pi/user在索引0-1连续出现,平均响应时间为150

/api/order在索引2单独出现,平均响应时间为150

api/user在索引3单独出现,由于被分割,响应时间为300

/api/order在索引 4−5 连续出现 2 次,平均响应时间:(250+350)/2=300

解题思路

核心思想

本题本质上是一个游程编码(Run-Length Encoding)或者双指针问题。
由于题目要求对相邻的相同请求路径进行合并,我们只需要遍历路径数组,并使用指针来寻找连续相同的路径段。

  1. 遍历数组,对于当前路径,记录其起始索引 i
  2. 继续向后查找,直到遇到与当前路径不同的路径,或者到达数组末尾,假设此时索引为 j
  3. 那么从 ij-1 就是一段连续的相同路径。这段路径的连续出现次数为 j - i
  4. 计算这段路径的总响应时间,并求平均值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

算法大师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值