思路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