通过率 46% · 提交 338 · 通过 156
在魔法王国的中心矗立着一座巨大的流量水晶,负责记录经过的魔法流流量。水晶每秒记录一次流量数据,并将其存储在数组 `magicFlows` 中。然而,当某些内的魔法流量总和超过设定时,流量水晶将会发生 。 魔法超载事件 定义如下: 在一个连续的时间窗口(窗口长度范围为 `[minWindow, maxWindow]`),如果该窗口内的魔法流量之和大于设定的阈值 `magicThreshold`,则视为一次 魔法超载事件。 注意: 1. 两个时间窗口只要起点或终点不同,就视为不同的时间窗口。 2. 确保魔法超载事件总次数不超过 100,000 次。 求发生魔法超载事件的次数。 输入:第一行输入一个整数 `n`,表示数组 `magicFlows` 的长度,满足 `1 <= n <= 100,000`。 第二行输入 `n` 个整数,表示数组 `magicFlows`,其中 `0 <= magicFlows[i] <= 10,000`。 第三行、第四行分别输入两个整数,分别表示时间窗口的最小长度 `minWindow` 和最大长度 `maxWindow`,满足 `1 <= minWindow <= maxWindow <= n`。 第五行输入一个整数 `magicThreshold`,表示魔法超载的阈值,满足 `1 <= magicThreshold <= 10^9`。 输出:输出一个整数,表示发生魔法超载事件的次数。
这类题属于华为可信认证科目一方向中「数组 / 双指针」方向的高频题型,通常考察对「数组 / 双指针」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
第一行输入一个整数 n,表示数组 magicFlows 的长度,满足 1 <= n <= 100,000。
第二行输入 n 个整数,表示数组 magicFlows,其中 0 <= magicFlows[i] <= 10,000。
第三行、第四行分别输入两个整数,分别表示时间窗口的最小长度 minWindow 和最大长度 maxWindow,满足 1 <= minWindow <= maxWindow <= n。
第五行输入一个整数 magicThreshold,表示魔法超载的阈值,满足 1 <= magicThreshold <= 10^9。
输出一个整数,表示发生魔法超载事件的次数。
示例 1
输入示例
5 5 2 3 6 4 2 3 10
输出示例
2
总计 2 次魔法超载事件:[2, 3, 6], [3, 6, 4]
示例 2
输入示例
5 1 1 1 1 1 1 5 10
输出示例
0
示例 3
输入示例
10 10 9 8 7 6 5 4 3 2 1 2 5 15
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
输出示例
16