动态规划法:
每一次爬的楼梯都为上一次和上上一次的和;
比如第三阶楼梯由第一阶楼梯和第二阶楼梯的和组成;
以此类推,第四阶楼梯由第三阶楼梯和第二阶楼梯的和组成。
以此类推来求解最后的结果。
class Solution:
def climbStairs(self, n: int) -> int:
# class Solution:
# def climbStairs(self, n):
d = [None] * n
if n == 2:
return 2
elif n == 1:
return 1
d[0] = 1
d[1] = 2
for i in range(2,n):
# print("####")
d[i] = d[i-1] + d[i-2]
# print(d[i])
# print(d)
return d[n-1]