- leetcode-70 : climbing stairs
class Solution3:
'''
分析:一次走一阶,也可以一次走两阶。
到第n阶的总总走法数 = 到第n-1阶的走法数 + 到第n - 2 阶的总走法数。
'''
def climbStairs(self, n):
if n == 0 or n == 1 or n == 2:
return n
dp = [0] * n # dp状态的定义
dp[0] = 1 # 第1阶只有一种走法
dp[1] = 2 # 第2阶有两种走法
for i in range(2, n):
dp[i] = dp[i - 1] + dp[i - 2] # dp方程
return dp[n - 1]