莫比乌斯反演 2021-12-20 13:12 采纳率: 100%
浏览 94
已结题

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

  • 写回答

2条回答 默认 最新

  • 英雄哪里出来 2021年博客之星Top1 2021-12-20 13:26
    关注

    一、思想

    动态规划的思想,对于第 n 个台阶,考虑从 n-1 和 n-2 台阶过来的情况

    二、源码

    int f[1000];
    
    int climbStairs(int n){
        f[0] = f[1] = 1;              // (1)
        for(int i = 2; i <= n; ++i) {
            f[i] = f[i-1] + f[i-2];   // (2)
        }
        return f[n];
    }
    

    /*

    • $(1)$ 初始化方案为 1;
    • $(2)$ 你可以从 $i-1$ 层爬过来,也可以从 $i-2$ 层爬过来,所以两个方案数加和即可;
    • /
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月20日
  • 已采纳回答 12月20日
  • 创建了问题 12月20日