给你一个整数数组 cost
,其中 cost[i]
是从楼梯第 i
个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
你可以选择从下标为 0
或下标为 1
的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低花费。

思路:
动态规划的基础题目
f(n) = f(n-1) + cost(n-1)
f(n) = f(n-2) + cost(n-2) 一共这两种方案,取最小的就行。
python3实现:
class Solution:
def minCostClimbingStairs(self, cost: List[int]) -> int:
result = {0:0, 1:0}
n = len(cost)
for i in range(2,n+1):
result[i] = min(result[i-1] + cost[i-1],result[i-2] + cost[i-2])
return result[n]
