climb_stairs.py 469 B

1234567891011121314151617181920212223242526
  1. # def climbStairs(n: int) -> int:
  2. # if n < 1 or n > 45:
  3. # return 0
  4. # else:
  5. # a = 1
  6. # b = 1
  7. # for i in range(2, n + 1):
  8. # a, b = b, a + b
  9. # return b
  10. # print(climbStairs(4))
  11. def f(n):
  12. cach = {}
  13. def g(n):
  14. if n == 1:
  15. return 1
  16. if n == 2:
  17. return 2
  18. else:
  19. if g(n - 1) in cach[n - 1]:
  20. return cach[n - 1] + g(n)
  21. else: