首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >爬楼梯(C++)

爬楼梯(C++)

作者头像
GeekLiHua
发布2025-01-21 11:11:37
发布2025-01-21 11:11:37
880
举报
文章被收录于专栏:JavaJava
  • 作者简介:一名后端开发人员,每天分享后端开发以及人工智能相关技术,行业前沿信息,面试宝典。
  • 座右铭:未来是不可确定的,慢慢来是最快的。
  • 个人主页极客李华-CSDN博客
爬楼梯

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

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

示例 1:

代码语言:javascript
复制
输入: n = 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶

示例 2:

代码语言:javascript
复制
输入: n = 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶

提示:

  • 1 <= n <= 45

我的代码:

代码语言:javascript
复制
class Solution {
private:
    // 递归想要优化的话 关键是这里 动态规划
    long long int dp[50];
public:
    // 经典递归找规律题
    int climbStairs(int n) {
        
        // 递归最后一组数据过不了超时
        // if(n <= 2) 
        // {
        //     dp[n] = n;
        //     return n; 
        // }
        // if (dp[n] != 0) return dp[n];
        // return climbStairs(n - 1) + climbStairs(n - 2);
        if (n <= 2) return n;
        int left = 1, right = 2;
        for (int i = 3; i <= n; ++ i)
        {
            int t = left;
            left = right;            
            right = t + right;                    
        }
        return right;
    }
};

对应我的掘金文章:https://juejin.cn/post/7147329103736078349

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

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

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

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

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