力扣-70爬楼梯

思路:

解决爬楼梯问题,其中 n 表示楼梯的阶数。问题的描述是:每次可以爬1个或2个台阶,问有多少种不同的方法可以爬到楼梯的顶部。

算法思路如下:

  • 初始时,设定变量 ab 分别表示爬到当前阶数所需的步数,初始化为1,因为爬到第1阶和第2阶只需1步。
  • 使用循环从第3阶开始遍历到第 n 阶,每次更新 ab 的值,更新规则是 a 变为 bb 变为 a + b,这是因为到达当前阶数的方法数等于到达前一阶和前两阶的方法数之和。
  • 循环结束后,返回 b,即到达第 n 阶的方法数。

这个算法的时间复杂度是 O(n),因为只需要遍历一次楼梯的阶数。

class Solution:
    def climbStairs(self, n: int) -> int:
        # 初始时,a和b分别表示爬到第1阶和第2阶所需的步数,初始化为1,因为只有1阶和2阶时,分别需要1步
        a, b = 1, 1
        # 从第3阶开始遍历到第n阶
        for _ in range(n - 1):
            # 更新a和b的值,更新规则是a变为b,b变为a+b
            # 这是因为到达当前阶数的方法数等于到达前一阶和前两阶的方法数之和
            a, b = b, a + b
        # 循环结束后,b表示到达第n阶的方法数
        return b

相关推荐

  1. 70. 楼梯

    2024-04-23 21:30:02       37 阅读
  2. 70.楼梯

    2024-04-23 21:30:02       7 阅读
  3. 70. 楼梯

    2024-04-23 21:30:02       10 阅读
  4. 70. 楼梯

    2024-04-23 21:30:02       10 阅读
  5. 70. 楼梯(三种解法)

    2024-04-23 21:30:02       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 21:30:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 21:30:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 21:30:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 21:30:02       20 阅读

热门阅读

  1. 动态规划专练( 231.打家劫舍Ⅱ)

    2024-04-23 21:30:02       11 阅读
  2. DataFrame python 根据某个字段排序

    2024-04-23 21:30:02       16 阅读
  3. 重参数化(Reparameterization)的原理

    2024-04-23 21:30:02       13 阅读
  4. C#Lazy 实现延迟加载详解与示例

    2024-04-23 21:30:02       15 阅读
  5. PHP实现阿里OSS对象存储

    2024-04-23 21:30:02       14 阅读
  6. leetcode77--组合

    2024-04-23 21:30:02       13 阅读