# f(n) = f(n -1) + f(n -2)classSolution:defclimbStairs(self, n:int)->int:if n <=2:return n
dp =[0]*(n +1)
dp[1]=1
dp[2]=2for i inrange(3, n +1):
dp[i]= dp[i -1]+ dp[i -2]return dp[n]if __name__ =="__main__":
s = Solution()
a = s.climbStairs(44)print(a)
2.2 解法2
classSolution:defclimbStairs(self, n:int)->int:if n <=2:return n
first, second, third =1,2,0for i inrange(3, n +1):
third = first + second
second = third # 更新 second的值
first = third - first # 更新first的值return third