题目
思路
设爬n个台阶,有f(n)种方法。对于当前位置,有两种选择,要么爬1个台阶,要么爬2个台阶。
则 f(n) = f(n - 1) + f(n - 2)。
特殊情况,也就是终止条件,f(1) = 1, f(2) = 2。为了使f(2)满足上式,f(0) = 1(数值上成立,没有意义)
代码
class Solution:
def climbStairs(self, n: int) -> int:
if n <= 2:
return n
dp = [0] * (n + 1)
dp[0] = 1
dp[1] = 1
dp[2] = 2
for i in range(2, n+1):
dp[i] = dp[i - 1] + dp[i - 2]
return dp[n]