\\DP s=s[n-1]+s[n-2] 空间复杂度O(1)
class Solution(object):
def climbStairs(self, n):
"""
:type n: int
:rtype: int
"""
if n == 0:
return 0
elif n == 1:
return 1
elif n == 2:
return 2
else:
a,b,temp = 1,2,3
for i in range(3,n+1):
temp = a+b
a = b
b = temp
return temp
\\斐波那契数列 数学公式
class Solution:
def climbStairs(self, n: int) -> int:
import math
sqrt5=5**0.5
fibin=math.pow((1+sqrt5)/2,n+1)-math.pow((1-sqrt5)/2,n+1)
return int(fibin/sqrt5)