動態規劃 leetcode 70

2021-10-22 04:01:26 字數 746 閱讀 3415

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 輸入...