华为OD机考双机位A卷 - 流量波峰(Java & Python& JS & C/C++ & GO )

最新华为上机考试

真题目录:点击查看目录
华为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的距离最小的情况

解题思路

基本思路

  1. 首先识别所有可能的波峰位置j(满足nums[j]比其相邻元素大)
  2. 对于每个波峰j,我们需要找到:
    • 左侧最远的小于nums[j]的位置i
    • 右侧最近的小于nums[j]的位置k
  3. 计算(k-i),并在所有满足条件的三元组中找出最小值

优化思路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

算法大师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值