力扣练习题:
爬楼梯程序:
假设你正在爬楼梯。需要 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]