爬N阶楼梯

阅读 83

2022-02-12

正在爬楼梯,需要 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)

0 0 举报