Minimum Number of Refueling Stops LeetCode solution in Java

1
class Solution {
2
public int minRefuelStops(int target, int startFuel, int[][] stations) {
3
if (startFuel >= target) return 0;
4
int[][] dp = new int[stations.length + 1][stations.length + 1];
5
for (int i = 0; i < dp.length; i++) dp[i][0] = startFuel;
6
for (int j = 1; j < dp.length; j++) {
7
for (int i = j; i < dp.length; i++) {
8
dp[i][j] =
9
Math.max(
10
dp[i - 1][j],
11
stations[i - 1][0] > dp[i - 1][j - 1]
12
? Integer.MIN_VALUE
13
: dp[i - 1][j - 1] + stations[i - 1][1]);
14
if (dp[i][j] >= target) return j;
15
}
16
}
17
return -1;
18
}
19
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0