泫溯 2024-10-07 11:21 采纳率: 94.7%
浏览 1
已结题

请问这里递推式dp[i+1]为什么=max(dp[j + 1], dp[j] + fuel),dp[i+1]不是还没求出来吗怎么比较大小

https://leetcode.cn/problems/minimum-number-of-refueling-stops/solutions/1636921/zui-di-jia-you-ci-shu-by-leetcode-soluti-nmga

class Solution:
    def minRefuelStops(self, target: int, startFuel: int, stations: list[list[int]]) -> int:
        dp = [startFuel] + [0] * len(stations)
        for i, (pos, fuel) in enumerate(stations):
            for j in range(i, -1, -1):
                if dp[j] >= pos:
                    dp[j + 1] = max(dp[j + 1], dp[j] + fuel)
        return next((i for i, v in enumerate(dp) if v >= target), -1)

print(Solution().minRefuelStops(100,1,[[10,100]]))

请问这里递推式dp[i+1]为什么=max(dp[j + 1], dp[j] + fuel),dp[i+1]不是还没求出来吗怎么比较大小

  • 写回答

1条回答 默认 最新

  • Marst·Zhang 2024-10-07 11:32
    关注

    第三行设定了初始值为0, 一开始和0比较大小.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月17日
  • 已采纳回答 10月9日
  • 创建了问题 10月7日