AlgoMooc
← 返回题库

P3281. 查找接口成功率最优时间段

中等通过率 52% · 提交 874 · 通过 452
滑动窗口前缀和贪心枚举固定滑窗/前缀和

小慕在维护一个微服务系统时,发现服务之间接口调用的成功率是衡量系统质量的关键指标。他记录了某个时间段内每个单位时间的接口失败率,这些数据用一个整数数组表示,数组中的每个元素取值在 0 到 100 之间。现在,小慕设定了一个平均失败率容忍值 ,要求找出数组中满足平均失败率小于等于该容忍值的最长连续时间段。如果不存在这样的时间段,则返回 NULL。

提示:带虚线的词点一下有通俗解释。

输入描述

输入有两行内容,第一行为minAverageLost,第二行为数组,数组元素通过空格" "分隔,minAverageLost 及数组中元素取值范围为 0~100 的整数,数组元素的个数不会超过 100 个。

输出描述

找出平均值小于等于 minAverageLost 的最长时间段,输出数组下标对,格式{beginIndex}-{endIndx}(下标从 0 开始),如果同时存在多个最长时间段,则输出多个下标对且下标对之间使用空格" "拼接,多个下标对按下标从小到大排序。

示例

示例 1

输入

2
0 0 100 2 2 99 0 2

输出

0-1 3-4 6-7

说明:A、输入解释:minAverageLost = 2,数组[0, 0, 100, 2, 2, 99, 0, 2] B、通过计算小于等于 2 的最长时间段为:数组下标为 0-1 即[0, 0],数组下标为 3-4 即[2, 2],数组下标为 6-7 即[0, 2],这三个部分都满足平均值小于等 2 的要求,因此输出 0-1 3-4 6-7

示例 2

输入

1
0 1 2 3 4

输出

0-2

说明:A、输入解释:minAverageLost=1,数组[0, 1, 2, 3, 4] B、前 3 个元素的平均值为 1,因此数组第一个至第三个数组下标,即 0-2

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「查找接口成功率最优时间段」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。