题解 | #最小花费爬楼梯#
最小花费爬楼梯
https://www.nowcoder.com/practice/6fe0302a058a4e4a834ee44af88435c7
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param cost int整型一维数组 # @return int整型 # class Solution: def minCostClimbingStairs(self , cost: List[int]) -> int: # 递归算法+动态规划 length=len(cost) # 从题目可以,初始:第一层和第二层免费 # 当大于2层,当前值取决于min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]) # 初始化一个字典,表示爬到第几层对应花费 dp={} # 初始化第一层和第二层花费均为0 dp[0],dp[1]=0,0 # 从第三层开始,当前有length层 for i in range(2,length+1): dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]) return dp[length]