最新华为上机考试
真题目录:点击查看目录
华为OD面试真题精选:点击立即查看
2025华为od机试双机位A卷 -华为OD上机考试双机位A卷
题目描述
一线运维人员在对通话流量进行监控,每一段时间内都是出现流量的高峰,流量有高有低形成一个个波峰波谷,运维人员想找到流量变化最快的波峰,你可以帮助他吗?
给定一个整数数组nums,代表采样点的流量值,请找到满足以下条件的三元组(i,j,k):其中i<j<k,nums[j] > nums[i]且nums[j] > nums[k] (即j是峰顶),并找到所有满足条件的三元组中(k-i)的最小值
输入描述
第一行为n个整数,表示数组中的n个元素,0<= n < =100000
输出描述
返回所有满足条件的三元组中(k-i)的最小值。若不存在,返回-1。
示例1
输入
3 5 4 7 2 1
输出
2
说明
满足条件的三元组为[0, 1, 2],距离2
示例2
输入
4 3 2 1
输出
-1
说明
无法找到满足条件的三元组,返回-1
解题思路
问题分析
- 我们需要找的是一个波峰(j位置),这个波峰左边有一个较低点(i位置),右边也有一个较低点(k位置)
- 关键是找出所有这样的三元组中,k和i的距离最小的情况
解题思路
基本思路
- 首先识别所有可能的波峰位置j(满足nums[j]比其相邻元素大)
- 对于每个波峰j,我们需要找到:
- 左侧最远的小于nums[j]的位置i
- 右侧最近的小于nums[j]的位置k
- 计算(k-i),并在所有满足条件的三元组中找出最小值
优化思路
为
订阅专栏 解锁全文
236

被折叠的 条评论
为什么被折叠?



