华为OD机试真题 新系统 2026-04-26 JavaGoC语言 实现【端口流量统计】
目录
题目
思路
Code
题目
给定一个整数数组 portRates,portRates[i] 表示该端口第 i 分钟端口流量速率(单位:bps)。
返回一个数组 ratesStat,ratesStat[i] 表示多少分钟以后出现比当前更大的流量速率,如果没有出现更大的流量速率,则值为 0。
输入描述:输入给定的整数数组,数字以逗号分割。
输出描述:输出所需 ratesStat,数字以逗号分割。示例 1
输入:730,740,750,710,690,720,760,730
输出:1,1,4,2,1,1,0,0
示例 2
输入:800
输出:0
思路
这是经典“下一个更大元素”问题,用单调递减栈即可。
从左到右遍历数组:
- 栈里存下标,且对应值单调递减。
- 如果当前值大于栈顶下标对应的值,就说明当前值是那个位置右侧第一个更大值。
- 弹栈并记录距离 i - j。
- 遍历结束后,栈里剩余位置都没有更大值,结果保持 0。
时间复杂度 O(n),空间复杂度 O(n)。
