


























2026 华为OD机试真题 4月26日华为OD上机新系统考试真题 100 分题型
点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解
给定一个整数数组 $portRates$,$portRates[i]$ 表示该端口第 $i$ 分钟端口流量速率(单位:$bps$)。
2026 华为OD机试真题 4月26日华为OD上机新系统考试真题 100 分题型
给定一个整数数组 $portRates$,$portRates[i]$ 表示该端口第 $i$ 分钟端口流量速率(单位:$bps$)。
返回一个数组 ratesStatratesStat,ratesStat[i]ratesStat[i] 表示多少分钟以后出现比当前更大的流量速率,如果没有出现更大的流量速率,则值为0。
输入
730,740,750,710,690,720,760,730
输出
1,1,4,2,1,1,0,0
说明
输入数组第 0分钟端口流速是 730bps,第 1 分钟端口流速是 740bps,相差 1 分钟,则返回数组第 0 个元素的值为 1;
输入数组第 2 分钟端口流速是 750 bps,第 6 分钟端口流速是 760 bps,相差 4 分钟,则返回数组第 2 个元素的值为 4。
输入
800
输出
说明
只有一个数据,返回 0
输入
800,700
输出
0,0
说明
只有两个元素,后一个流量比第一个流量低,返回 [0,0]
输入
700,800
输出
1,0
说明
只有两个元素,后一个流量比第一个流量高,返回 [1,0]
这道题本质上是经典的“下一个更大元素”(Next Greater Element)问题,可以通过单调栈(Monotonic Stack)来高效求解。
题目要求对于数组中的每一个元素,找到其之后第一个比它大的元素,并计算它们之间的索引差值。如果之后没有更大的元素,则返回 。
单调栈的思路如下:
rates[i]:
rates[i] 大于栈顶索引对应的元素 rates[stack.peek()],说明找到了栈顶元素的下一个更大元素。idx,此时 idx 的下一个更大元素就是 rates[i],它们之间的距离就是 i - idx。将结果数组 ans[idx] 更新为 i - idx。i 压入栈中。(初始化时默认为 即可)。while 循环,但每个元素最多入栈一次,出栈一次,所以总的操作次数是 $2N$,时间复杂度为 $O(N)$。此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。