746. 使用最小花费爬楼梯

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低花费。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/min-cost-climbing-stairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

1
2
3
4
5
6
7
class Solution:
def minCostClimbingStairs(self, cost: List[int]) -> int:
dp = [0] *(len(cost) + 1)
dp[1],dp[2] = cost[0],cost[1]
for i in range(len([d for d in dp if d != 0]),len(cost) + 1):
dp[i] = min(dp[i-1],dp[i-2]) + cost[i-1]
return min(dp[len(cost)],dp[len(cost)-1])