【代码随想录day22】爬楼梯

题目

假设你正在爬楼梯。需要 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 阶

思路

写法1

python 复制代码
class Solution:
    def climbStairs(self, n: int) -> int:
        if n==1:
            return 1
        # 1.确定dp数组及下标含义:dp[i]表示爬到i阶有dp[i]种方法
        # 2.状态转移方程
        # dp[i] = dp[i-1]+dp[i-2]:第i阶楼梯由第i-1阶和第i-2阶转移过来
        # 3.初始化:dp[1]=1,dp[2]=2
        # 4.执行顺序:顺序依次执行即可
        dp = [0]*(n+1)
        dp[1] = 1
        dp[2] = 2
        for i in range(3,n+1):
            dp[i] = dp[i-1]+dp[i-2]
        return dp[n]

写法2

python 复制代码
class Solution:
    def climbStairs(self, n: int) -> int:
        if n<3:
            return n
        dp1 = 1
        dp2 = 2
        res = 0
        for _ in range(n-2):
            res = dp1+dp2
            dp1,dp2 = dp2,res
        return res
相关推荐
Wect17 小时前
LeetCode 39. 组合总和:DFS回溯解法详解
前端·算法·typescript
Wect17 小时前
LeetCode 46. 全排列:深度解析+代码拆解
前端·算法·typescript
颜酱17 小时前
Dijkstra 算法:从 BFS 到带权最短路径
javascript·后端·算法
木心月转码ing20 小时前
Hot100-Day24-T128最长连续序列
算法
小肥柴20 小时前
A2UI:面向 Agent 的声明式 UI 协议(三):相关概念和技术架构
算法
学高数就犯困1 天前
性能优化:LRU缓存(清晰易懂带图解)
算法
xlp666hub1 天前
Leetcode第七题:用C++解决接雨水问题
c++·leetcode
CoovallyAIHub1 天前
CVPR 2026 | MixerCSeg:仅2.05 GFLOPs刷新四大裂缝分割基准!解耦Mamba隐式注意力,CNN+Transformer+Mamba三
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
YOLO26-Pose 深度解读:端到端架构重新设计,姿态估计凭什么跨代领先?
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
化工厂气体泄漏怎么用AI检测?30张图3D重建气体泄漏场景——美国国家实验室NeRF新研究
深度学习·算法·计算机视觉