LeetCode|Day27|70. 爬楼梯|Python刷题笔记

LeetCode|Day27|70. 爬楼梯|Python刷题笔记

🗓️ 本文属于【LeetCode 简单题百日计划】系列

👉 点击查看系列总目录 >>


📌 题目简介

题号:70. 爬楼梯
难度:简单
题目链接:点击跳转


🧾 题目描述

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 12 个台阶。

问有多少种不同的方法可以爬到楼顶?

示例:

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

💡 解法:动态规划(斐波那契)

python 复制代码
class Solution:
    def climbStairs(self, n: int) -> int:
        # 边界情况
        if n <= 2:
            return n
        # 初始前两个台阶方法数
        a, b = 1, 2
        for _ in range(3, n + 1):
            a, b = b, a + b  # 状态转移
        return b

🧠 我的理解

  • 当前台阶的方法数等于前一阶方法数 + 前两阶方法数;
  • 属于经典的动态规划问题(实际就是斐波那契数列);
  • 初始时,1 阶有 1 种爬法,2 阶有 2 种。

📌 基础语法复习:

  • 多变量赋值:a, b = b, a + b 是状态更新;
  • range(start, end):生成指定区间的数列;
  • 本题是动态规划中最基础的"状态转移 + 边界初始化"类型题。

📌 返回总目录:点我回目录