力扣练习题: 爬楼梯程序: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
方法1: 动态规划法: 第 i 阶的可以有 i-1 和 i -2 得到,所以第 i 阶的总数是由这两个相加得到。令 dp[i] 表示能到达第 i阶的方法总数:dp[i] = dp[i-1] +dp[i-2]`
class Solution:
def climbStairs(self
, n
: int) -> int:
dp
= []
dp
.append
(1)
dp
.append
(2)
if n
==1:
return 1
if n
==2:
return 2
for i
in range(2,n
):
dp
.append
(dp
[i
-1]+dp
[i
-2])
return dp
[-1]