假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?代码
时间: 2023-11-13 20:28:05 浏览: 157
问题描述:有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。
5星 · 资源好评率100%
这是一道典型的动态规划问题,可以用递归或迭代的方式实现。以下是一个迭代的实现方式:
```python
def climbStairs(n: int) -> int:
if n <= 2:
return n
a, b = 1, 2
for i in range(3, n+1):
a, b = b, a + b
return b
```
时间复杂度为 O(n),空间复杂度为 O(1)。
阅读全文