文巾解题 70. 爬楼梯
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文巾解题 70. 爬楼梯相关的知识,希望对你有一定的参考价值。
1 题目描述
2 解题思路
动态规划:
假设现在还有n阶台阶,那么我可以向下迈一步,然后子问题就变成了计算n-1阶台阶的步数;我们也可以向下迈两步,然后子问题就变成了计算n-2阶台阶的步数
顺着这个思路,我们有(注意:这种方法会超时!所以不是最终代码)
class Solution:
def climbStairs(self, n: int) -> int:
if(n==1):
return 1
elif(n==2):
return 2
else:
return self.climbStairs(n-1)+self.climbStairs(n-2)
超时的原因是,我们会反复调用一些climbStairs的函数
为了解决超时问题,我们设置一个数组,来记录climbStairs(x)的值
class Solution:
def climbStairs(self, n: int) -> int:
lst=[]
for i in range(n+1):
lst.append(0)
def f(n):
if(lst[n]!=0):
return lst[n]
elif(n==1):
lst[n]=1
return 1
elif(n==2):
lst[n]=2
return 2
else:
lst[n]=f(n-1)+f(n-2)
return(lst[n])
return f(n)
以上是关于文巾解题 70. 爬楼梯的主要内容,如果未能解决你的问题,请参考以下文章