使用python写假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。
时间: 2023-11-26 21:48:02 浏览: 69
70. 爬楼梯
以下是使用Python解决该问题的代码和解释:
```python
def climbStairs(n):
if n == 1:
return 1
if n == 2:
return 2
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来存储到达每个台阶的不同方法数。dp[i]表示到达第i个台阶的不同方法数。显然,到达第一个台阶只有一种方法,到达第二个台阶有两种方法。对于第i个台阶,我们可以从第i-1个台阶爬1步到达,也可以从第i-2个台阶爬2步到达。因此,dp[i] = dp[i-1] + dp[i-2]。最后返回dp[n]即可。
阅读全文