4.15华为OD机试真题 新系统 - API请求日志去重分析 (JavaPyCC++JsGo)

📅 2026/7/8 1:24:28
4.15华为OD机试真题 新系统 - API请求日志去重分析 (JavaPyCC++JsGo)
API请求日志去重分析2026 华为OD机试真题 4月15日华为OD上机新系统考试真题 100 分题型点击查看华为 OD 机试真题完整目录2026最新华为OD机试新系统卷 双机位C卷 真题题库目录全覆盖题库 逐点算法考点详解题目描述某微服务系统的日志监控平台需要分析API调用记录。日志中包含大量重复的请求记录为了优化存储和后续分析需要对相邻的重复请求进行合并统计。具体规则如下1.日志按时间顺序排列每条记录包含请求路径和响应时间2.如果连续出现相同的请求路径需要将这些记录合并为一条3.合并后的记录需要统计该路径连续出现的次数并保留所有响应时间的平均值4.相同路径但被其他路径分隔的视为不同的记录组,需要分别合并请实现一个函数对给定的日志数据进行去重合并处理。2026 华为OD机试真题 4月15日华为OD上机新系统考试真题 100 分题型输入描述输入请求路径path数组按时间顺序排列输入对应的响应时间responseTimes数组(毫秒)补充0≤paths.length≤10^50≤responseTimes.length≤10^5paths.lengthresponseTimes.length1≤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单独出现平均响应时间为150api/user在索引3单独出现由于被分割响应时间为300/api/order在索引 4−5 连续出现 2 次平均响应时间(250350)/2300解题思路核心思想本题本质上是一个游程编码Run-Length Encoding或者双指针问题。 由于题目要求对相邻的相同请求路径进行合并我们只需要遍历路径数组并使用指针来寻找连续相同的路径段。 1. 遍历数组对于当前路径记录其起始索引i。 2. 继续向后查找直到遇到与当前路径不同的路径或者到达数组末尾假设此时索引为j。 3. 那么从i到j-1就是一段连续的相同路径。这段路径的连续出现次数为j - i。 4. 计算这段路径的总响应时间并求平均值向下取整即整数除法。 5. 将合并后的记录起始索引、出现次数、平均响应时间格式化输出。 6. 将当前索引更新为j继续下一段的查找。复杂度分析时间复杂度: $\mathcal{O}(N)$其中 $N$ 为路径数组的长度。虽然有嵌套循环但每个元素最多被访问一次总的时间复杂度是线性的。空间复杂度: $\mathcal{O}(N)$用于存储结果字符串或