70. 爬楼梯

https://leetcode-cn.com/problems/climbing-stairs/

解法一:dp

由“累加”性质,很容易想到递推方程:dp[i] = dp[i-1] + dp[i-2],dp[i]表示到达i层的方法总数,由于每次爬一步或两步,因此dp[i]只有可能由dp[i-1]和dp[i-2]而来。

class Solution:
    def climbStairs(self, n: int) -> int:
        if n <= 1:
            return n
        dp = [0] * (n+1)
        dp[1], dp[2] = 1, 2  #初始条件
        for i in range(3, n+1):
            dp[i] = dp[i-1] + dp[i-2]
        return dp[n]

最后更新于