70. 爬楼梯

题目链接 70. 爬楼梯
思路 动态规划
题解链接 教你一步步思考动态规划:从记忆化搜索到递推(Python/Java/C++/Go/JS/Rust)
关键点 1. \(dp(i) = dp(i-1) + dp(i-2)\) 2. \(dp(1) = 1\)
时间复杂度 \(O(n)\)
空间复杂度 \(O(n)\)

代码实现:

class Solution:
    def climbStairs(self, n: int) -> int:
        @cache
        def dfs(i):
            if i <= 1:
                return 1
            return dfs(i-1) + dfs(i-2)
        return dfs(n)
posted @ 2024-09-13 00:01  WrRan  阅读(3)  评论(0编辑  收藏  举报