前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode-70. 爬楼梯

leetcode-70. 爬楼梯

作者头像
灰太狼学Java
发布2022-06-17 11:03:49
1590
发布2022-06-17 11:03:49
举报
文章被收录于专栏:Java学习驿站Java学习驿站

JAVA解法

代码语言:javascript
复制
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 阶台阶所有的方法,用的是递归方法。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JAVA解法
  • 解法分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档