871. Minimum Number of Refueling Stops

Question

CleanShot 2024-11-09 at 15.00.22.png

Code

class Solution(object):
    def minRefuelStops(self, target, startFuel, stations):
        prev = 0
        heap = []
        num = 0

        stations.append([target, float("inf")])

        for position, fuel in stations:
            startFuel -= (position - prev)

            while heap and startFuel < 0:
                startFuel += -heapq.heappop(heap)
                num += 1

            if startFuel < 0:
                return -1

            heapq.heappush(heap, -fuel)
            prev = position

        return num