跳台阶问题,每次只能跳1个台阶或者2个台阶,n个台阶共有多少种方式
class Solution: def climbStairs1(self, n: int) -> int: # Each time you can either climb 1 or 2 steps. if n == 1: return 1 res = [0 for i in range(n)] res[0], res[1] = 1, 2 for i in range(2, n): res[i] = res[i-1] + res[i-2] return res[-1] def climbStairs(self, n: int) -> int: if n == 1: return 1 a, b = 1, 2 for i in range(2, n): tmp = b b = a+b a = tmp return b # Be careful to use the recursive version in case of exceeding the time limit. def climbStairs_2(self, n: int) -> int: if n == 1: return 1 if n == 2: return 2 return self.climbStairs(n-1) + self.climbStairs(n-2)