Class Solution
java.lang.Object
g0801_0900.s0871_minimum_number_of_refueling_stops.Solution
871 - Minimum Number of Refueling Stops.<p>Hard</p>
<p>A car travels from a starting position to a destination which is <code>target</code> miles east of the starting position.</p>
<p>There are gas stations along the way. The gas stations are represented as an array <code>stations</code> where <code>stations[i] = [position<sub>i</sub>, fuel<sub>i</sub>]</code> indicates that the <code>i<sup>th</sup></code> gas station is <code>position<sub>i</sub></code> miles east of the starting position and has <code>fuel<sub>i</sub></code> liters of gas.</p>
<p>The car starts with an infinite tank of gas, which initially has <code>startFuel</code> liters of fuel in it. It uses one liter of gas per one mile that it drives. When the car reaches a gas station, it may stop and refuel, transferring all the gas from the station into the car.</p>
<p>Return <em>the minimum number of refueling stops the car must make in order to reach its destination</em>. If it cannot reach the destination, return <code>-1</code>.</p>
<p>Note that if the car reaches a gas station with <code>0</code> fuel left, the car can still refuel there. If the car reaches the destination with <code>0</code> fuel left, it is still considered to have arrived.</p>
<p><strong>Example 1:</strong></p>
<p><strong>Input:</strong> target = 1, startFuel = 1, stations = []</p>
<p><strong>Output:</strong> 0</p>
<p><strong>Explanation:</strong> We can reach the target without refueling.</p>
<p><strong>Example 2:</strong></p>
<p><strong>Input:</strong> target = 100, startFuel = 1, stations = [[10,100]]</p>
<p><strong>Output:</strong> -1</p>
<p><strong>Explanation:</strong> We can not reach the target (or even the first gas station).</p>
<p><strong>Example 3:</strong></p>
<p><strong>Input:</strong> target = 100, startFuel = 10, stations = [[10,60],[20,30],[30,30],[60,40]]</p>
<p><strong>Output:</strong> 2</p>
<p><strong>Explanation:</strong> We start with 10 liters of fuel. We drive to position 10, expending 10 liters of fuel.</p>
<p>We refuel from 0 liters to 60 liters of gas.</p>
<p>Then, we drive from position 10 to position 60 (expending 50 liters of fuel),</p>
<p>and refuel from 10 liters to 50 liters of gas. We then drive to and reach the target.</p>
<p>We made 2 refueling stops along the way, so we return 2.</p>
<p><strong>Constraints:</strong></p>
<ul>
<li><code>1 <= target, startFuel <= 10<sup>9</sup></code></li>
<li><code>0 <= stations.length <= 500</code></li>
<li><code>0 <= position<sub>i</sub> <= position<sub>i+1</sub> < target</code></li>
<li><code>1 <= fuel<sub>i</sub> < 10<sup>9</sup></code></li>
</ul>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
minRefuelStops
(int target, int startFuel, int[][] stations)
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
minRefuelStops
public int minRefuelStops(int target, int startFuel, int[][] stations)
-