小黑代码:记忆化搜索
class Solution:
def climbStairs(self, n: int) -> int:
# 记忆字典
map_ = {}
# 递归搜索函数
def dfs(rest = n):
if rest in map_:
return map_[rest]
if rest < 0:
return 0
if not rest:
return 1
one = dfs(rest - 1)
double = dfs(rest - 2)
map_[rest] = one + double
return map_[rest]
return dfs()
小黑代码:动态规划
class Solution:
def climbStairs(self, n: int) -> int:
dp = [1, 2]
for i in range(2, n):
dp.append(dp[i - 2] + dp[i - 1])
return dp[n-1]
动态规划
class Solution:
def climbStairs(self, n: int) -> int:
if n < 3:
return n
a = 1
b = 2
c = 0
for i in range(2, n):
c = a + b
a = b
b = c
return c
小黑生活
搓澡后的简餐
去练琴
练完日常跑步去啦
吃个夜宵
活力早餐
下午白塔咖啡厅之旅