爬楼梯问题python
时间: 2023-07-28 21:51:34 浏览: 88
使用python爬楼梯问题
爬楼梯问题是一个经典的动态规划问题,可以用Python来求解。假设你要爬n级楼梯,每次可以爬1级或2级,那么有多少种不同的方法可以爬到楼顶呢?
我们可以使用递归或动态规划来解决这个问题。下面是使用动态规划的方法:
```python
def climbStairs(n: int) -> int:
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]
```
这个函数的参数是一个整数n,返回值是到达第n级楼梯的不同方法数。首先判断n是否等于1或2,如果是则直接返回1或2。创建一个长度为n+1的数组dp,dp[i]表示到达第i级楼梯的不同方法数。初始化dp[1]=1和dp[2]=2。然后从3开始遍历到n,每次计算dp[i]=dp[i-1]+dp[i-2]。最后返回dp[n]即可。
例如,如果n=3,那么dp数组的值为[0, 1, 2, 3],最终结果为3。如果n=4,那么dp数组的值为[0, 1, 2, 3, 5],最终结果为5。
阅读全文