0
点赞
收藏
分享

微信扫一扫

记录力扣刷题——爬楼梯

kmoon_b426 2022-03-17 阅读 31

一般思想(递归):

int climbStairs(int n){
    int means=0;
    int a[]=

    if(n==1||n==0){
        return 1;
    }else if(n<0){
        return 0;
    }

    means = climbStairs(n-2)+climbStairs(n-1);

    return means;

}

但是,时间复杂度不能满足题目要求。

更佳题解:

​
int climbStairs(int n) {
    int p = 0, q = 0, r = 1;
    for (int i = 1; i <= n; ++i) {
        p = q;
        q = r;
        r = p + q;
    }
    return r;
}

每一台阶的方法数,是n-1阶和n-2阶方法数之和。

举报

相关推荐

0 条评论