0️⃣python資料結構與演算法學習路線假設你正在爬樓梯。需要 n 階你才能到達樓頂。學習內容:
每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是乙個正整數。
輸入: 2最後一步只有一種方法,最後兩步只能有兩種方法,去掉最後兩步或一步之後遞迴輸出: 2
解釋: 有兩種方法可以爬到樓頂。
1 . 1 階 + 1 階
2 . 2 階
class
solution
:def
climbstairs
(self, n:
int)
->
int:
defdp
(n):
if n==1:
return
1if n==0:
return
1return dp(n-1)
+ dp(n-2)
# dp = [0 for _ in range(46)]
dp=[1
,1]for i in
range(2
,46):
1]+dp[i-2]
)return dp[n]
直接用遞迴會超時,可以先記錄2-46的數值,每次讀取減少計算時間 Leetcode 70 爬樓梯 動態規劃 c語言
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1.1 階 1 階 2.2 階 示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂。1...
動態規劃走樓梯 Leetcode 70 爬樓梯
從本題中我們可以學到包含重複子問題,可以採用記憶化的方式,復用計算後的值 並用動態規劃的思想,找到動態轉移方程,採用迴圈實現。題目描述 題目 假設我們需要爬乙個樓梯,這個樓梯一共有 n 階,可以一步跨越 1 個或者 2 個台階,那麼爬完樓梯一共有多少種方式?示例 輸入 2 輸出 2 有2種方式可以爬...
動態規劃走樓梯 leetcode 70 爬樓梯
力扣 leetcode cn.com 題目描述 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1.1 階 1 階 2.2 階 示例 2 輸入...