Minimum Speed to Arrive on Time LeetCode solution in Java

1
class Solution {
2
public int minSpeedOnTime(int[] dist, double hour) {
3
int left = 1;
4
int right = (int) 1e8;
5

6
while (left < right) {
7
int middle = (left + right) / 2;
8
if (arriveOnTime(dist, hour, middle)) right = middle;
9
else left = middle + 1;
10
}
11

12
return right == (int) 1e8 ? -1 : right;
13
}
14

15
private boolean arriveOnTime(int[] dist, double hour, int speed) {
16
int time = 0;
17
for (int i = 0; i < dist.length - 1; i++) {
18
time += Math.ceil((double) dist[i] / speed);
19
}
20
return time + (double) dist[dist.length - 1] / speed <= hour;
21
}
22
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0