演算法題 爬樓梯

2021-10-19 22:21:17 字數 645 閱讀 5527

題幹:

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

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

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

示例:

核心思想:

這題明顯是一道遞迴題,通用公式是climbstairs(n) = climbstairs(n-1)+climbstairs(n-2),但是直接使用遞迴計算會超時間,總結原因後發現是做了過多的重複計算,比如n=5時,climbstairs(3)就被計算了兩次,為了節省計算時間,就需要把已經計算出來的結果儲存進去,因為不知道極限值為多少,也防止為了過度計算,此處採用了map進行儲存

初步解法:

class

solution

private

void

countvalue

(int n)

}

優化:可以考慮非遞迴方式實現,從小到大計算值即可

python爬樓梯演算法 爬樓梯(Python3)

假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 和 2 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...

爬樓梯演算法

有n階樓梯,有1,2,3 走m步走完樓梯,一共有多少種走法,並輸出所有的走法 設走n階台階的走法數為 f n 可以得到 f 1 1 f 2 2 f 3 4 對於n 3時,縮小問題規模 最後一步上乙個台階的話,之前上了n 1個台階,走法為f n 1 最後一步上兩個台階的話,之前上了n 2個台階,走法為...

演算法之爬樓梯

題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?沙雕解法一 利用遞迴,就是最後一步一定是前一步走一步或倒退兩步走兩步,超時!include pch.h include include using namespace std i...