Fibonacci-style iteration. Keep only two previous values.
def climbStairs(n): if n <= 2: return n prev2, prev1 = 1, 2 for i in range(3, n + 1): curr = prev1 + prev2 prev2 = prev1 prev1 = curr return prev1
time, space.
The approach
Fibonacci-style iteration. Keep only two previous values.
def climbStairs(n): if n <= 2: return n prev2, prev1 = 1, 2 for i in range(3, n + 1): curr = prev1 + prev2 prev2 = prev1 prev1 = curr return prev1
time, space.