魔法师 (@Constanline) 在 Leetcode每日一题 —— 3633. 最早完成陆地和水上游乐设施的时间 I 中发帖
思路
记录每个时刻 早于此刻开始的水上设施的最短持续时间 shortestDuration 和 晚于此刻开始的的水上设施的最早结束时间 earliestFinishTime 还有 所有水上设施中最早完成的时间 firstFinishTime。
然后遍历 陆地设施,统计最短的( endTime = landStartTime[i] + landDuration[i])
陆地设施晚于firstFinishTime的,计当前陆地设施的完成时间。否则取以下三者最小的。
firstFinishTime + landDuration[i]
endTime + shortestDuration[endTime]
earliestFinishTime[endTime]
代码
class Solution {
private static class Rides {
...