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