贪心,最早水上或者陆地(尽可能早点完成),之后遍历,时间复杂度:O(N)
class Solution:
def earliestFinishTime(self, landStartTime: List[int], landDuration: List[int], waterStartTime: List[int], waterDuration: List[int]) -> int:
ans = lf = wf = inf
n1, n2 = len(landStartTime), len(waterDuration)
for i in range(n1):
lf = min(lf, landStartTime[i] + landDuration[i])
for j in range(n2):
ans = min(ans, max(lf, waterStartTime[j]) + waterDuration[j])
for i in range(n2):
wf = min(wf, waterStartTime[i] + waterDuration[i])
for j in range(n1):
ans = min(ans, max(wf, landStartTime[j]) + landDuration[j])
return ans
1 个帖子 - 1 位参与者