

题目看不太懂,站在0和1的时候是不用花费的?
dp[i]表示到达当前楼梯 i 时候的最小花费
class Solution(object):
def minCostClimbingStairs(self, cost):
"""
:type cost: List[int]
:rtype: int
"""
n = len(cost)
dp = [0] * (n + 1)
for i in range(2, n + 1):
dp[i] = min(cost[i - 1] + dp[i - 1], cost[i - 2] + dp[i - 2])
return dp[n]
if __name__ == '__main__':
cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]
Sol = Solution()
res = Solution.minCostClimbingStairs(Sol, cost)
print(res)
本文介绍了一种使用动态规划解决的最省成本上楼梯问题,通过实例展示如何用Python实现Solution类,求解给定成本数组中到达最后一阶楼梯的最小花费。关键在于理解dp[i]的含义和状态转移方程:dp[i] = min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2])。

549

被折叠的 条评论
为什么被折叠?



