【代码随想录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
相关推荐
happygrilclh18 小时前
高压高频电源的pid算法
算法
格林威18 小时前
Baumer相机铸件气孔与缩松识别:提升铸造良品率的 6 个核心算法,附 OpenCV+Halcon 实战代码!
人工智能·opencv·算法·安全·计算机视觉·堡盟相机·baumer相机
葫三生18 小时前
存在之思:三生原理与现象学对话可能?
数据库·人工智能·神经网络·算法·区块链
Evand J18 小时前
【MATLAB例程】无人机三维路径规划|A*,RRT(快速随机树算法), APF(人工势场法)算法对比|可自定义起终点、障碍物坐标。附下载链接
算法·matlab·无人机·astar·路径规划·rrt·apf
少许极端18 小时前
算法奇妙屋(二十七)-全排列与子集问题
算法·剪枝·回溯·递归
sali-tec18 小时前
C# 基于OpenCv的视觉工作流-章20-仿射变换
图像处理·人工智能·opencv·算法·计算机视觉
u01092727119 小时前
实时数据流处理
开发语言·c++·算法
独自破碎E19 小时前
【滑动窗口+计数】LCR015找到字符串中所有字母异位词
数据结构·算法
Trouvaille ~19 小时前
【Linux】线程同步与互斥(一):线程互斥原理与mutex详解
linux·运维·服务器·c++·算法·线程·互斥锁
2501_9403152619 小时前
leetcode统计一致字符串的数目(哈希表)
算法·哈希算法·散列表