leetcode70 爬楼梯

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

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

示例 1:

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

示例 2:

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

思路

最简单的方法用递归,但是层数太高会导致栈溢出

java 复制代码
    public int climbStairs(int n) {
        if (n <= 0) return 0; // 如果n小于等于0,返回0(或者抛出一个异常,取决于你的需求)
        if (n == 1) return 1;
        if (n == 2) return 2; // 这一步是可选的,但可以提高n=2时的效率
        int[] dp = new int[n + 1]; // 创建一个数组来保存中间结果
        dp[1] = 1;
        dp[2] = 2;
        for (int i = 3; i <= n; i++) {
            dp[i] = dp[i - 1] + dp[i - 2]; // 动态规划的核心递推关系
        }
        return dp[n];
    }
相关推荐
要开心吖ZSH5 分钟前
Java AI Agent 开发中的 RAG 实现方案及小白入门指南
java·ai·agent·rag
雁迟6 分钟前
第九章:列表 List 数据类型
数据结构·r语言
掉鱼的猫6 分钟前
Java 流程编排新范式 Solon Flow:一个引擎,七种节点,覆盖规则/任务/工作流/AI 编排全场景
java·workflow
m0_5474866613 分钟前
郑州轻工业大学《数据结构》期末试卷及答案2018-2022学年(AB卷)
数据结构·期末试卷·郑州轻工业大学
__Coffee__14 分钟前
封装矩阵结构体
线性代数·算法·矩阵
Aaa1111144318 分钟前
四类地址 逻辑地址 线性地址 虚拟地址 物理地址
java
小则又沐风a18 分钟前
深入了解进程概念 第二章
java·linux·服务器·前端
程序猿进阶21 分钟前
OpenClaw Mac 安装教程
java·macos·ai·架构·agent·openclaw
变量未定义~22 分钟前
字符串哈希匹配字符串
数据结构·算法·哈希算法
周末也要写八哥25 分钟前
浅谈二叉树的深度优先搜索(DFS)算法
算法·深度优先