746. 使用最小花费爬楼梯

题目链接 746. 使用最小花费爬楼梯
思路 动态规划
题解链接 教你一步步思考动态规划:从记忆化搜索到递推(附题单)Python/Java/C++/Go/JS/Rust
关键点 1. \(dp(i) = min(dp(i-1) + cost_{i-1}, dp(i-2) + cost_{i-2})\) 2. \(dp(1) = 0\)
时间复杂度 \(O(n)\)
空间复杂度 \(O(n)\)

代码实现:

class Solution:
    def minCostClimbingStairs(self, cost: List[int]) -> int:
        @cache
        def dfs(i):
            if i <= 1:
                return 0
            return min(dfs(i-1)+cost[i-1], dfs(i-2)+cost[i-2])
        return dfs(len(cost))
posted @ 2024-09-13 00:04  WrRan  阅读(4)  评论(0编辑  收藏  举报