746使用最小花费爬楼梯

1
2
3
4
5
6
7
8
9
def minCostClimbingStairs(self, cost: List[int]) -> int:
# 例子1中,题意说的 台阶 0,1,2 之后,其实还有一个终点台阶,这里明确一下。
# 设定 d[i] 为到第i级 台阶 的花销;
# 初始化,题意中 0 和 1 可以是起始台阶,所以可以不用花销;
d = [ 0 for _ in range(len(cost)+1)]
for i in range(2,len(cost)+1): # 爬楼梯遍历 一定是从 0 到 大;
d[i] = min(d[i-1]+cost[i-1],d[i-2]+cost[i-2]) # 走两级 和 走一级 台阶 花销的最小值;
# print(d[i])
return d[-1]