Leetcode 70 爬樓梯 動態規劃 c語言

2021-09-26 15:15:39 字數 774 閱讀 2695

假設你正在爬樓梯。需要 n 階你才能到達樓頂。

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是乙個正整數。

示例 1:

輸入: 2

輸出: 2

解釋: 有兩種方法可以爬到樓頂。

1. 1 階 + 1 階

2. 2 階

示例 2:

輸入: 3

輸出: 3

解釋: 有三種方法可以爬到樓頂。

1. 1 階 + 1 階 + 1 階

2. 1 階 + 2 階

3. 2 階 + 1 階

這道題寫乙個例子就能發現和斐波那契數列數列極為相似。演算法課上介紹遞迴的時候就出現過,使用遞迴解決斐波那契數列問題。不過,雖然遞迴可解。f(n) = f(n-1)+f(n-2),但是存在大量重複計算,計算f3的時候需要計算f2和f1,計算f4的時候,需要計算f3和f2。這樣算下去,存在大量重複計算開銷。因此,可以使用數字儲存中間的計算結果,和動態規劃類似。這道題應該當作動態規劃的練習題。dp方程為dp[n] = dp[n-1] + dp[n-2],一目了然。

//典型的斐波那契數列數列,採用dp方法。

//dp[n] = dp[n-2] + dp[n-1];

int climbstairs(int n)

linux應用程式、核心、驅動開發交流討論群(745510310),感興趣的同學可以**討論、交流、資料查詢等,前進的道路上,你不是乙個人奧^_^。

LeetCode 70 爬樓梯 簡單

假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1.1 階 1 階 2.2 階 示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂。1...

leetcode70題 爬樓梯

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 2 階示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂。3.1 階 1 階 1 階 4.1 階 2 階 5.2 階...

動態規劃走樓梯 Leetcode 70 爬樓梯

從本題中我們可以學到包含重複子問題,可以採用記憶化的方式,復用計算後的值 並用動態規劃的思想,找到動態轉移方程,採用迴圈實現。題目描述 題目 假設我們需要爬乙個樓梯,這個樓梯一共有 n 階,可以一步跨越 1 個或者 2 個台階,那麼爬完樓梯一共有多少種方式?示例 輸入 2 輸出 2 有2種方式可以爬...