给定一个一维数组 priceArray,表示未来 priceRecords 小时内每小时的电价(单位:分/kWh)。
找出充电成本最低的连续 hours 个小时时间段的开始时刻点。
若存在多种成本最低方案,优先返回最低成本方案的最早的时刻点。
这类题属于算法机考高频题型中「100分 / 华为OD」方向的高频题型,通常考察对「100分 / 华为OD」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
输入描述
- 参数1:整数 priceRecords,表示电价记录数量
- 参数2:整数 hours,表示连续小时数
- 参数3:一维数组 priceArray,表示每小时的电价 price1 ~ priceN,以空格分隔
- 约束条件:1 ≤ priceRecords ≤ 24,1 ≤ hours ≤ priceRecords,1 ≤ price1 ~ priceN ≤ 100
输出描述
输出一个整数,表示最优充电时段的起始索引(从 0 开始)。
示例
输入示例
12 3
25 15 20 18 12 25 30 28 22 16 14 35
说明:连续时间段为 3,从 0 时刻开始分段计算最小总成本:
- 0 为起始索引时 总费用 25 + 15 + 20 = 60
- 1 为起始索引时 总费用 15 + 20 + 18 = 53
- 2 为起始索引时 总费用 20 + 18 + 12 = 50
- 3 为起始索引时 总费用 18 + 12 + 25 = 55
- 4 为起始索引时 总费用 12 + 25 + 30 = 67
- 5 为起始索引时 总费用 25 + 30 + 28 = 83
- 6 为起始索引时 总费用 30 + 28 + 22 = 80
- 7 为起始索引时 总费用 28 + 22 + 16 = 66
- 8 为起始索引时 总费用 22 + 16 + 14 = 52
- 9 为起始索引时 总费用 16 + 14 + 35 = 65
连续 3 小时的最低电价时段是索引 2-4,价格分别为 20, 18, 12,总费用 = 20 + 18 + 12 = 50 分最低
因此充电最低时间起始索引为 2
输入示例
12 4
23 35 67 68 89 12 24 37 57 10 12 45
说明:连续时间段为 4,从 0 时刻开始分段计算最小总成本:
- 0 为起始索引时 总费用 23 + 35 + 67 + 68 = 193
- 1 为起始索引时 总费用 35 + 67 + 68 + 89 = 259
- 2 为起始索引时 总费用 67 + 68 + 89 + 12 = 236
- 3 为起始索引时 总费用 68 + 89 + 12 + 24 = 193
- 4 为起始索引时 总费用 89 + 12 + 24 + 37 = 162
- 5 为起始索引时 总费用 12 + 24 + 37 + 57 = 130
- 6 为起始索引时 总费用 24 + 37 + 57 + 10 = 128
- 7 为起始索引时 总费用 37 + 57 + 10 + 12 = 116
- 8 为起始索引时 总费用 57 + 10 + 12 + 45 = 124
因此充电最低时间起始索引为 7
时间限制 1000 ms · 内存限制 256 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。