Skip to main content

1870. Minimum Speed to Arrive on Time

https://leetcode.com/problems/minimum-speed-to-arrive-on-time/

Python

class Solution:
def minSpeedOnTime(self, dist: List[int], hour: float) -> int:
def can_reach(speed):
return sum([ceil(dst/speed) for dst in dist[:-1]], 0) + dist[-1] / speed <= hour

low, high = 1, 10**7
min_speed = -1
while low <= high:
speed = (high - low) // 2 + low
if can_reach(speed):
min_speed = speed
high = speed - 1
else:
low = speed + 1
return min_speed