小慕正在经营一个大型的魔法能量工坊。 工坊内安装了若干台能量采集装置,用于记录在某一时间段内,每分钟稳定产生的魔法能量。 现在,小慕希望统计: > 在所有装置中,哪一台在连续 60 分钟内累计产生的魔法能量最多? --- 能量记录说明 给定一个二维整数数组 `logs`,其中每条记录格式为:
logs[i] = [deviceId, startTime, endTime, energyPerMinute]含义为: - `deviceId`:装置编号 - `[startTime, endTime)`:时间区间(单位:分钟,) - `energyPerMinute`:在该时间段内,每分钟稳定产生的魔法能量 --- 核心规则 1. 能量叠加规则(关键修改点) - 同一装置在同一时间点若存在多条记录 - 该分钟的魔法能量为 所有记录的 energyPerMinute 之和 2. 空白时间规则 - 若某分钟没有任何记录 - 该分钟的魔法能量视为 `0` 3. 目标计算规则 - 对每个装置,计算任意一个 的 - 最终返回魔法能量总和最大的装置信息:
[deviceId, startTime, totalEnergy]其中: - `startTime` 为该 60 分钟区间的起始时间 - `totalEnergy` 为该区间内的 --- 优先级规则(从高到低) 1. `totalEnergy` 更大的优先 2. 若相同,`deviceId` 更小的优先 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 < 10000` - `1 <= stallId <= 100` - `0 <= openTime < closeTime <= 720` - `closeTime - openTime <= 720` - `1 <= manaPerMinute < 1000`
输出描述
``` stallId startTime totalMana ```
示例
示例 1
输入
4 9 0 121 50 9 100 150 80 9 100 121 70 4 0 200 50
输出
9 90 7020
说明:摊位 4: - 任意连续 60 分钟魔法能量恒为 `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