746. 使用最小花费爬楼梯
Ideas
首先确定题目类型,爬楼梯问题,并且给定了状态转移的限制,其实就已经可以确定状态转移方程了。
然后题目说可以从下标为0或下标为1的台阶开始爬,所以我们可以定义两个变量:first, second,分别表示从0台阶和1台阶开始爬的花费,然后依次向上更新,模拟爬楼梯的过程。
Code
Python
class Solution:
def minCostClimbingStairs(self, cost: List[int]) -> int:
first, second = 0, 0
for i in range(2, len(cost) + 1):
val = min(second + cost[i - 1], first + cost[i - 2])
first, second = second, val
return second