📌  相关文章
📜  计算到达第 N 级楼梯的方法 |第 2 组(1)

📅  最后修改于: 2023-12-03 15:41:38.189000             🧑  作者: Mango

计算到达第 N 级楼梯的方法 |第 2 组

当我们走楼梯时,一般的做法是一步一步往上走。但是,我们也可以一次跨两个台阶,这样走的话,到达第 N 级楼梯需要多少种不同的方法?

解题思路

为了求解到达第 N 级楼梯的方法数,我们可以利用动态规划(DP)的思路,分别计算到达 i 级楼梯的方法数,最终得到到达 N 级楼梯的方法数。

由于我们可以一次跨两个台阶,那么到达第 i 级楼梯的方法数可以由到达第 i-1 级(一步跨一格)和到达第 i-2 级(一步跨两格)所得到。因此,我们可以得到以下递推式:

dp[i] = dp[i-1] + dp[i-2]

初始状态:

dp[0] = 1
dp[1] = 1
代码实现
def climbStairs(n: int) -> int:
    dp = [0] * (n+1)
    dp[0] = 1
    dp[1] = 1
    for i in range(2, n+1):
        dp[i] = dp[i-1] + dp[i-2]
    return dp[n]
总结

本题可以利用动态规划求解,其中 dp[i] 表示到达第 i 级楼梯的方法数。递推式为 dp[i] = dp[i-1] + dp[i-2]。初始状态为 dp[0] = 1, dp[1] = 1。代码实现较为简单,可以借此加深对动态规划的理解。