classSolution:defminmaxGasDist(self, stations: List[int], k:int)->float:# 最小最大值问题 = 二分
diff =[b - a for a, b in pairwise(stations)]defcheck(x):# 有没有可能最大距离到达x# x越小越不可能# 保证所有距离小于等于x即可if x ==0:returnFalse
need =0for d in diff:if d < x:passelif d / x ==int(d / x):
need +=int(d / x)-1else:
need +=int(d / x)return need <= k
l, r =10**(-6),10**9while r - l >10**(-6):
mid =(l + r)/2if check(mid):# 最小mid可以达到
r = mid
else:
l = mid
return r