Recursion 递归 top down
python
class Solution:
def climbStairs(self, n: int) -> int:
@cache
def dfs(i):
if i == 1:
return 1
if i == 2:
return 2
return dfs(i-1) + dfs(i-2)
return dfs(n)
递推 recurrence
python
class Solution:
def climbStairs(self, n: int) -> int:
if n == 1:
return 1
if n == 2:
return 2
f0 = 1
f1 = 2
for i in range(2, n):
new_f = f0 + f1
f0 = f1
f1 = new_f
return new_f
# @cache
# def dfs(i):
# if i == 1:
# return 1
# if i == 2:
# return 2
# return dfs(i-1) + dfs(i-2)
# return dfs(n)