4.22华为OD机试真题 新系统 - 计费时段计算 (JavaPyCC++JsGo)

📅 2026/7/10 18:43:26
4.22华为OD机试真题 新系统 - 计费时段计算  (JavaPyCC++JsGo)
计费时段计算2026 华为OD机试真题 4月22日华为OD上机新系统考试真题 100 分题型点击查看华为 OD 机试真题完整目录2026最新华为OD机试新系统卷 双机位C卷 真题题库目录全覆盖题库 逐点算法考点详解题目描述电力公司的电费根据用电的时间采用三挡计费第一档用电时间在每天的$12:00$-$13:30$和$17:30$-$18:00$第二档每天从$0:00$起的且不在第一档时段内的累积的$10$小时第三档其他时段某设备每天开关机一次$0:00$之前必然关机。统计这台设备每天各个时段的开机时长用分钟表示。时间格式$HH:MM$$24$小时制 说明小时不足两位不补零分钟严格保持两位。例如$8:08$2026 华为OD机试真题 4月22日华为OD上机新系统考试真题 100 分题型输入描述$HH:MM$ $HH:MM$两个时间分别为设备开机时间、设备关机时间中间空格间隔。例如$8:00$ $23:30$。约束结束时间不超过$0:00$最大为$23:59$即不考虑跨天的情况。如果开机时间跟关机时间相等则认为是开机$0$分钟。例如$8:00$ $8:00$输出描述整数数组依次为第一、二、三档的时长单位分钟。例如$[120,600,210]$示例1输入8:00 23:30输出[120,600,210]说明第一档$12:00$-$13:30$、$17:30$-$18:00$共$120$分钟第二档$8:00$-$12:00$、$13:30$-$17:30$、$18:00$-$20:00$共$600$分钟达到$10$小时上限。其余的时间要归到第三档第三档$20:00$-$23:30$共$210$分钟示例2输入13:00 17:45输出[45,240,0]说明第一档$13:00$-$13:30$、$17:30$-$17:45$共$45$分钟第二档$13:30$-$17:30$共$240$分钟第三档由于第二档还没达到$10$小时第三档时间为$0$解题思路核心思想时间转换将所有输入的时间格式HH:MM转换为从当天 $0:00$ 开始的总分钟数方便计算。档位规则第一档固定时段 $12:00$-$13:30$$720$-$810$ 分钟和 $17:30$-$18:00$$1050$-$1080$ 分钟。第二档非第一档时段内的开机时间每天累积上限为 $10$ 小时$600$ 分钟。第三档超过第二档上限后的所有其他开机时间。模拟计算从开机时间遍历到关机时间每一分钟判断其属于哪一档如果当前分钟在第一档时段内计入第一档。如果不在第一档时段如果已计入第二档的时间未满 $600$ 分钟计入第二档。否则计入第三档。输出结果以数组形式输出三个档位的总时长。复杂度分析时间复杂度$O(L)$其中 $L$ 是开关机之间的时间跨度分钟。由于一天最多只有 $1440$ 分钟因此计算非常高效。空间复杂度$O(1)$只需要常数级别的变量来存储各档