classSolution: defminSpeedOnTime(self, dist: List[int], hour: float) -> int: defcheck(x): ans = 0 for i inrange(len(dist)-1): if dist[i]%x==0: ans += dist[i]//x else: ans += dist[i]//x + 1 ans += dist[len(dist)-1]/x print(x,ans,ans <= hour ) return ans <= hour defsearch_II(check): iflen(dist)-1 >= hour: # 除了最后一站 前面的就已经把时间占用了,就一定到不了 return -1 left = 1 right = 10**7# 这是题目定好的上限。 while left<=right: mid = (left+right)//2 if check(mid): right = mid-1 else: left = mid+1 print(left) return left return search_II(check)