Algorithm
Earliest Finish Time for Land and Water Rides I
Solution
class Solution:
def earliestFinishTime(
self,
landStartTime: List[int],
landDuration: List[int],
waterStartTime: List[int],
waterDuration: List[int],
) -> int:
def solve(start1, duration1, start2, duration2):
finish1 = inf
for i in range(len(start1)):
finish1 = min(finish1, start1[i] + duration1[i])
finish2 = inf
for i in range(len(start2)):
finish2 = min(finish2, max(start2[i], finish1) + duration2[i])
return finish2
land_water = solve(landStartTime, landDuration, waterStartTime, waterDuration)
water_land = solve(waterStartTime, waterDuration, landStartTime, landDuration)
return min(land_water, water_land)Video GuideLeetcode Daily
Time Complexity
O(n + m)
Space Complexity
O(1)
