思路1:python
# 初始化數組,能夠爲0,能夠爲None num = [0] * n # 若是 n 大於等於1,那麼走第一個臺階的方法有一個,就是走一步 if n >= 1: num[0] = 1 # 若是臺階數大於等於2,走第二個臺階的方法有兩種 if n >= 2: num[1] = 2 # 第二個臺階以後的臺階就能夠經過這個臺階的前兩個臺階的方法數的和求來 for i in range(2,n): num[i] = num[i-1] + num[i-2] # 返回結果 return num[-1]
class Solution: def climbStairs(self, n: int) -> int: num = [0] * n if n >= 1: num[0] = 1 if n >= 2: num[1] = 2 for i in range(2,n): num[i] = num[i-1] + num[i-2] return num[-1]
思路2:數組
pre , cur = 0 , 1 for i in range(n): pre , cur = cur , pre + cur return cur
class Solution: def climbStairs(self, n: int) -> int: pre , cur = 0 , 1 for i in range(n): pre , cur = cur , pre + cur return cur