|
| 1 | +<h2>871. Minimum Number of Refueling Stops</h2><h3>Hard</h3><hr><div><p>A car travels from a starting position to a destination which is <code>target</code> miles east of the starting position.</p> |
| 2 | + |
| 3 | +<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> |
| 4 | + |
| 5 | +<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> |
| 6 | + |
| 7 | +<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> |
| 8 | + |
| 9 | +<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> |
| 10 | + |
| 11 | +<p> </p> |
| 12 | +<p><strong>Example 1:</strong></p> |
| 13 | + |
| 14 | +<pre><strong>Input:</strong> target = 1, startFuel = 1, stations = [] |
| 15 | +<strong>Output:</strong> 0 |
| 16 | +<strong>Explanation:</strong> We can reach the target without refueling. |
| 17 | +</pre> |
| 18 | + |
| 19 | +<p><strong>Example 2:</strong></p> |
| 20 | + |
| 21 | +<pre><strong>Input:</strong> target = 100, startFuel = 1, stations = [[10,100]] |
| 22 | +<strong>Output:</strong> -1 |
| 23 | +<strong>Explanation:</strong> We can not reach the target (or even the first gas station). |
| 24 | +</pre> |
| 25 | + |
| 26 | +<p><strong>Example 3:</strong></p> |
| 27 | + |
| 28 | +<pre><strong>Input:</strong> target = 100, startFuel = 10, stations = [[10,60],[20,30],[30,30],[60,40]] |
| 29 | +<strong>Output:</strong> 2 |
| 30 | +<strong>Explanation:</strong> We start with 10 liters of fuel. |
| 31 | +We drive to position 10, expending 10 liters of fuel. We refuel from 0 liters to 60 liters of gas. |
| 32 | +Then, we drive from position 10 to position 60 (expending 50 liters of fuel), |
| 33 | +and refuel from 10 liters to 50 liters of gas. We then drive to and reach the target. |
| 34 | +We made 2 refueling stops along the way, so we return 2. |
| 35 | +</pre> |
| 36 | + |
| 37 | +<p> </p> |
| 38 | +<p><strong>Constraints:</strong></p> |
| 39 | + |
| 40 | +<ul> |
| 41 | + <li><code>1 <= target, startFuel <= 10<sup>9</sup></code></li> |
| 42 | + <li><code>0 <= stations.length <= 500</code></li> |
| 43 | + <li><code>0 <= position<sub>i</sub> <= position<sub>i+1</sub> < target</code></li> |
| 44 | + <li><code>1 <= fuel<sub>i</sub> < 10<sup>9</sup></code></li> |
| 45 | +</ul> |
| 46 | +</div> |
0 commit comments