用Python楼梯有 n 阶台阶,上楼可以一步上 1 阶,也可以一步上 2 阶,走完 n 阶台阶共有多少种不同的走法
时间: 2024-04-29 13:24:12 浏览: 96
问题描述:有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。
5星 · 资源好评率100%
这是一个经典的斐波那契数列问题,可以使用递归或动态规划来解决。
使用递归:
```python
def climbStairs(n):
if n == 1:
return 1
if n == 2:
return 2
return climbStairs(n-1) + climbStairs(n-2)
```
使用动态规划:
```python
def climbStairs(n):
if n == 1:
return 1
dp = [0] * (n+1)
dp[1] = 1
dp[2] = 2
for i in range(3, n+1):
dp[i] = dp[i-1] + dp[i-2]
return dp[n]
```
其中,dp[i] 表示走到第 i 阶台阶的不同走法数量。
时间复杂度和空间复杂度均为 O(n)。
阅读全文