遞迴和動態規劃都是將原問題拆成多個子問題然後求解,他們之間最本質的區別是,動態規劃保留了子問題的解,避免了重複計算。
70. climbing stairs (easy)
題目描述:
有 n 階樓梯,每次可以上一階或者兩階,求有多少種上樓梯的方法。
思路分析:
定義乙個dp陣列儲存上樓梯的方法數,dp[i]表示走到第i層樓的方法數,第i層樓梯可以從第i-1層和i-2個樓梯再走一步到達。那麼走到第i層樓梯的方式為走到第i-1層的方式和第i-2層的方式和。
dp[ i ]=dp[i-1]+dp[i-2]
**:
class solution
return dp[n];
}}
斐波那契 70 爬樓梯
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2輸出 2解釋 有兩種方法可以爬到樓頂。1.1 階 1階 2.2 階 示例 2 輸入 3輸出 3解釋 有三種方法可以爬到樓頂。1.1 階 ...
斐波那契數列和爬樓梯問題
n階樓梯,每次爬一階或者兩階,求總共有多少中方法爬n階樓梯?include stdafx.h include using namespace std int louti int n b 30 c 30 申請陣列用於儲存結果 intmax 30 能求出的結果位數最大為30位,可任意設定 int j,k...
LC070 爬樓梯 斐波那契
該陣列每個元素的指標對應的是台階數,元素的值存放的是台階數對應的方法數 不管怎樣,陣列下標指標肯定是從0開始的,所以要考慮0.有0個台階,不需要爬,所以沒有方法數 但從斐波那契角度,dp 0 1 dp 1 1 1階台階,只有一種方式 1 2階台階,有兩種方式 1 1,2 因為題目設定n是正整數,所以...