题目力扣链接
代码随想录链接
-
dp数组定义:到达此台阶的最小体力为dp[i]
-
递推公式:前两个台阶最小体力值加这两个台阶的cost。dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2])
-
dp初始化:dp[0] = 0,dp[1] = 0;
-
遍历顺序:从前到后遍历cost数组就可以。
-
举例推导dp数组
class Solution:def minCostClimbingStairs(self, cost: List[int]) -> int:totalCost = 0dp = [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]