classSolution: defclimbStairs(self, n: int) -> int: if n == 0or n == 1: return1 if n == 2: return2 return self.climbStairs(n-1) + self.climbStairs(n-2)
动态规划的方法
时间复杂度和空间复杂度都是O(n)
1 2 3 4 5 6 7 8 9 10
classSolution: defclimbStairs(self, n: int) -> int: if n == 0or n == 1: return1 result = [1] * (n+1) result[2] = 1 for i inrange(2, n+1): result[i] = result[i-1] + result[i-2] return result[n]
classSolution: defclimbStairs(self, n: int) -> int: if n == 0or n == 1: return1 p = 0 q = 0 r = 1 for i inrange(1, n+1): p = q q = r r = p + q return r