侧边栏壁纸
博主头像
阿里灰太狼博主等级

You have to believe in yourself . That's the secret of success.

  • 累计撰写 104 篇文章
  • 累计创建 50 个标签
  • 累计收到 12 条评论

目 录CONTENT

文章目录

leetcode-70. 爬楼梯

阿里灰太狼
2021-11-15 / 0 评论 / 0 点赞 / 252 阅读 / 389 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-11-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

cj48.png
cj49.png

JAVA解法

class Solution {
    public int climbStairs(int n) {
        // 少于2个台阶则台阶数与方法一样
        if(n <= 2){
            return n;
        }
        int dp1 = 1, dp2 = 2, dp = 0;
        // dp[n] = dp[n-1] + dp[n-2]
        for(int i = 3;i <= n;i++){
            dp = dp1 + dp2;
            dp1 = dp2;
            dp2 = dp;
        }
        return dp2;
    }
}

leetcode原题: 70. 爬楼梯

解法分析

到第一个台阶只有一个方法,到第二个台阶有两个方法,分别是 1+1 或 2,因此直接返回 n 即可。

大于三个台阶,可以用 dp[n] = dp[n-1] + dp[n-2] 这个公式,就是要到第 n 阶台阶需要算到第 n-1 和到 n-2 台阶的方法数之和,两者相加即为到第 n 阶台阶所有的方法,用的是递归方法。

想想解这道数学题的时候还是初三,懵懵懂懂,现已大三,六七年前了吧,那些人还好吗?

0

评论区