0
点赞
收藏
分享

微信扫一扫

爬N阶楼梯

北冥有一鲲 2022-02-12 阅读 83

正在爬楼梯,需要 n 阶才能到达楼顶。每次你可以爬 12 个台阶,有多少种不同的方法可以爬到楼顶?

例如:

输入 n = 3

输出 n = 3

有三种方法可以爬到楼顶:

 1阶 +1阶 +1 阶;

1阶 + 2阶

2阶 + 1阶

思路:

一阶楼梯只有一种方法

二阶楼梯有两种方法

三阶楼梯有三种方法

四阶楼梯有五种方法

因第N个台阶只能从第N-1和N-2个台阶走上去m,N阶楼梯有N-1阶楼梯的方法加N-2阶楼梯的方法。

int climbStairs(int n){
    if(n<=2) return n; 
    int i=1,j=2,step=0;
    for(int m=3;m<=n;m++){
        step=i+j; //n-1与n-2个台阶的走法总和
        i=j; //更新n-1个台阶的走法
        j=step; //更新n个台阶的走法
    }
    return step;
}
举报

相关推荐

0 条评论