通过率 71% · 提交 28 · 通过 20
在艾尔德林大陆上,存在着一座巨大的魔法集市。 每一家摊位都被安装了若干枚魔能观测水晶,用于记录在某一时间段内,每分钟稳定涌入的魔法能量。 现在,大法师议会希望统计: > 在所有摊位中,哪一家在连续 60 分钟内累计获得的魔法能量最多? --- 魔能记录说明 给定一个二维整数数组 `logs`,其中每条记录格式为:
logs[i] = [stallId, openTime, closeTime, manaPerMinute]含义为: - `stallId`:摊位编号 - `[openTime, closeTime)`:时间区间(单位:分钟,) - `manaPerMinute`:在该时间段内,每分钟稳定产生的魔法能量 --- 核心规则 1. 能量叠加规则(关键修改点) - 同一摊位在同一时间点若存在多条记录 - 该分钟的魔法能量为 所有记录的 manaPerMinute 之和 2. 空白时间规则 - 若某分钟没有任何记录 - 该分钟的魔法能量视为 `0` 3. 目标计算规则 - 对每个摊位,计算任意一个 的 - 最终返回魔法能量总和最大的摊位信息:
[stallId, startTime, totalMana]其中: - `startTime` 为该 60 分钟区间的起始时间 - `totalMana` 为该区间内的 --- 优先级规则(从高到低) 1. `totalMana` 更大的优先 2. 若相同,`stallId` 更小的优先 3. 若仍相同,`startTime` 更早的优先
这类题属于华为可信认证科目一方向中「可信 / 模拟」方向的高频题型,通常考察对「可信 / 模拟」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
n
stallId_1 openTime_1 closeTime_1 manaPerMinute_1
stallId_2 openTime_2 closeTime_2 manaPerMinute_2
...
stallId_n openTime_n closeTime_n manaPerMinute_n
1 <= n < 100001 <= stallId <= 1000 <= openTime < closeTime <= 720closeTime - openTime <= 7201 <= manaPerMinute < 1000stallId startTime totalMana
示例 1
输入示例
4 9 0 121 50 9 100 150 80 9 100 121 70 4 0 200 50
输出示例
9 90 7020
摊位 4:
50 * 60 = 3000摊位 9:
选择区间 [90,150):
[90,100):10 分钟 × 50 = 500[100,121):21 分钟 × (50+80+70)=200 = 4200[121,150):29 分钟 × 80 = 2320总魔法能量:
500 + 4200 + 2320 = 7020
为全体摊位最大值,且 startTime=90 是最早满足该最大值的时间点。
示例 2
输入示例
4 7 10 110 180 2 0 200 100 5 0 120 150 5 1 121 150
输出示例
5 1 18000
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有