基站运维团队需要统计某区域基站的低能耗连续运行时段数目,以评估基站的节能优化效果。给定以下信息:
- 整数数组 power:power[i] 表示该基站第 i 小时的能耗值(单位:千瓦时),power[i] ≥ 0,能耗不会为负;
- 整数 target:低能耗阈值(单位:千瓦时),要求连续时段的总能耗不超过该阈值;
- 整数 max_hour:最大统计时长(单位:小时),要求连续时段的时长不超过该值,且至少为 1 小时。
请你统计满足以下两个条件的连续运行时段(子数组)的数目:
- 连续时段的时长 ∈ [1, max_hour];
- 该时段内的总能耗 ≤ target。
补充说明:
- 1 ≤ power.length ≤ 10^5;
- 0 ≤ power[i] ≤ 100;
- 0 ≤ target ≤ 10^7;
- 1 ≤ max_hour < power.length;
- 所有能耗值非负。
这类题属于算法机考高频题型中「100分 / 华为OD」方向的高频题型,通常考察对「100分 / 华为OD」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
输入描述
三个参数
- 整数数组 power
- 两个整数 target 和 max_hour
示例
说明:
- 长度 1 子数组:下标 0、1、2 处,共 3 个;
- 长度 2 子数组:下标区间 [0,1]、[1,2],共 2 个;
- 总计:3+2=5 个。
说明:
- 长度 1 子数组:每个单元能耗均不超过 5,共 5 个;
- 长度 2 子数组:满足条件的有 3 个;
- 下标区间 [0,1]:总能耗 3+1=4 ≤ 5;
- 下标区间 [1,2]:总能耗 1+2=3 ≤ 5;
- 下标区间 [3,4]:总能耗 4+1=5 ≤ 5;
- 不满足:下标区间 [2,3] 总能耗 2+4=6 > 5;
- 长度 3 子数组:满足条件的有 0 个;
- 下标区间 [0,2]:总能耗 3+1+2=6 > 5;
- 下标区间 [1,3]:总能耗 1+2+4=7 > 5;
- 下标区间 [2,4]:总能耗 2+4+1=7 > 5;
- 总计:5+3=8 个。
时间限制 1000 ms · 内存限制 256 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。