LeetCode|Day27|70. 爬楼梯|Python刷题笔记
LeetCode|Day27|70. 爬楼梯|Python刷题笔记
🗓️ 本文属于【LeetCode 简单题百日计划】系列
👉 点击查看系列总目录 >>
📌 题目简介
题号:70. 爬楼梯
难度:简单
题目链接:点击跳转
🧾 题目描述
假设你正在爬楼梯。需要 n
阶你才能到达楼顶。每次你可以爬 1
或 2
个台阶。
问有多少种不同的方法可以爬到楼顶?
示例:
输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶:
1 阶 + 1 阶
2 阶
💡 解法:动态规划(斐波那契)
class Solution:def climbStairs(self, n: int) -> int:# 边界情况if n <= 2:return n# 初始前两个台阶方法数a, b = 1, 2for _ in range(3, n + 1):a, b = b, a + b # 状态转移return b
🧠 我的理解
- 当前台阶的方法数等于前一阶方法数 + 前两阶方法数;
- 属于经典的动态规划问题(实际就是斐波那契数列);
- 初始时,1 阶有 1 种爬法,2 阶有 2 种。
📌 基础语法复习:
- 多变量赋值:
a, b = b, a + b
是状态更新; range(start, end)
:生成指定区间的数列;- 本题是动态规划中最基础的“状态转移 + 边界初始化”类型题。