LeetCode 热题 HOT 100Java题解之70. 爬楼梯(击败了100%的用户)

LeetCode 热题 HOT 100Java题解之70. 爬楼梯(击败了100%的用户),第1张

LeetCode 热题 HOT 100Java题解之70. 爬楼梯(击败了100%的用户) 题目:

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

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

注意:给定 n 是一个正整数。


示例:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 阶 + 1 阶
2.  2 阶

思路:

斐波那契数列,也没啥好说的动态规划解决问题

你走到n位置的方法有f(n)种,这f( n )前一步要么是跨一级上来

要么是跨两级上来也就是f( n ) = f( n-1 ) + f( n-2 );

就很好做了

复杂度


时间复杂度:O(n) 

空间复杂度:O(1)

代码:
public int climbStairs(int n) {
        int dp[] = new int [n+1];
        //初始化
        dp[0] = 1;
        dp[1] = 1;
        //循环
        for(int i = 2;i<=n;i++){
            dp[i] = dp[i-1] + dp[i-2];
        }
        return dp[n];
    }

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5695392.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存