70. 爬楼梯
分析
典型的斐波那契数列问题。到达第 n
阶的方法数等于到达第 n-1
阶和第 n-2
阶的方法数之和
状态转移方程:f(n) = f(n-1) + f(n-2)
初始条件:
f(0) = 1
:到达第1
阶的方法只有一种f(1) = 1
:到达第1
阶的方法只有一种f(2) = 2
:到达第2
阶的方法是两种1 + 1
- 通过观察状态转移公式,问题可以转化为计算斐波那契数列的第
n
项 - 使用两个变量来存储状态值,优化空间复杂度:
a
:表示到达前一阶的方法数b
:表示到达当前阶的方法数
- 迭代更新
a
和b
的值,直到计算到第n
阶
时间复杂度
循环执行 n - 1
次,时间复杂度为 O(n)
空间复杂度
空间复杂度为 O(1)
C++代码
|
|