文巾解题 70. 爬楼梯
生活随笔
收集整理的這篇文章主要介紹了
文巾解题 70. 爬楼梯
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 題目描述
2 解題思路
動態(tài)規(guī)劃:
假設(shè)現(xiàn)在還有n階臺階,那么我可以向下邁一步,然后子問題就變成了計算n-1階臺階的步數(shù);我們也可以向下邁兩步,然后子問題就變成了計算n-2階臺階的步數(shù)
順著這個思路,我們有(注意:這種方法會超時!所以不是最終代碼)
class Solution:def climbStairs(self, n: int) -> int:if(n==1):return 1elif(n==2):return 2else:return self.climbStairs(n-1)+self.climbStairs(n-2)?超時的原因是,我們會反復(fù)調(diào)用一些climbStairs的函數(shù)
為了解決超時問題,我們設(shè)置一個數(shù)組,來記錄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]=1return 1elif(n==2):lst[n]=2return 2else:lst[n]=f(n-1)+f(n-2)return(lst[n])return f(n)總結(jié)
以上是生活随笔為你收集整理的文巾解题 70. 爬楼梯的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NTU课程笔记 MAS714(2) Bi
- 下一篇: 文巾解题 198. 打家劫舍