Minimum Speed to Arrive on Time LeetCode solution in Java
1class Solution {2public int minSpeedOnTime(int[] dist, double hour) {3int left = 1;4int right = (int) 1e8;56while (left < right) {7int middle = (left + right) / 2;8if (arriveOnTime(dist, hour, middle)) right = middle;9else left = middle + 1;10}1112return right == (int) 1e8 ? -1 : right;13}1415private boolean arriveOnTime(int[] dist, double hour, int speed) {16int time = 0;17for (int i = 0; i < dist.length - 1; i++) {18time += Math.ceil((double) dist[i] / speed);19}20return time + (double) dist[dist.length - 1] / speed <= hour;21}22}