LeetCode 70.爬楼梯
难度 :简单
题目描述
思路求解
这个题目可以用动态规划来做,第 i 阶可以由以下两种方法得到:在第(i−1) 阶后向上爬一阶或在第(i−2) 阶后向上爬两阶。
所以到达第 ii 阶的方法总数就是到第 (i-1)(i−1) 阶和第 (i-2)(i−2) 阶的方法数之和。
令 dp[i] 表示能到达第 i 阶的方法总数:
代码实现
class Solution:
def climbStairs(self, n: int) -> int:
if n <3 : return n
p = [0 for i in range(n)]
p[0],p[1] = 1, 2
for i in range(2,n):
p[i] = p[i-1] + p[i-2]
return p[-1]
提交结果
欢迎关注公众号 : 数学算法实验室