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++代码
|
|