动态规划:使用最小花费爬楼梯

题目力扣链接
代码随想录链接

  1. dp数组定义:到达此台阶的最小体力为dp[i]

  2. 递推公式:前两个台阶最小体力值加这两个台阶的cost。dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2])

  3. dp初始化:dp[0] = 0,dp[1] = 0;

  4. 遍历顺序:从前到后遍历cost数组就可以。

  5. 举例推导dp数组

class Solution:
    def minCostClimbingStairs(self, cost: List[int]) -> int:
        totalCost = 0
        dp = [0] * (len(cost) + 1)
        for i in range(2, len(cost)+1):
            dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2])
        return dp[-1]
posted @ 2025-11-09 22:21  Nanndiin  阅读(0)  评论(0)    收藏  举报