動態規劃之爬樓梯問題

2022-07-02 16:06:11 字數 541 閱讀 7720

題目如下:

分析:

假設,只有1個台階,那麼需要爬1步,只有1種方法。

假設,只有2個台階,那麼需要先爬1步再爬1步,或者爬2步,有2種方法。

假設,只有3個台階,那麼需要先爬1步再爬1步再爬1步

,或者爬2步再爬1步

,或者爬1步再爬2步

,有3種方法。

以此類推,最終可以找到規律,假設有n個台階,那麼最終結果等於爬n-1個台階和n-2個台階的方法總數。

(將乙個複雜的問題,轉移成另一種狀態,劃分為多個子問題)

題解:

動態規劃+滾動陣列

class solution 

int rollarr = ;

for (int i = 3; i < n + 1; i++)

return rollarr[1];

}}

利用陣列儲存每次計算所需的兩個子問題的結果,避免重複計算子問題的結果。

爬樓梯問題 動態規劃

題目 乙個人每次只能走一層樓梯或者兩層樓梯,問走到第80層樓梯一共有多少種方法。解題思想 設走第i層樓梯需要dp i 中方法,走第i 1層樓梯需要dp i 1 中方法。則走第 i 1層樓梯的方法種數為dp i 1 dp i 種。實動態規劃解題的主要思想就是找出遞推式,然後利用子問題的解來求最後的最優...

動態規劃(爬樓梯問題)

問題 有 n 階台階,每次可以走 1 或 2 步,請問走到第 n 階台階一共有多少種走法?解 設有 f n 種走法 第一步 1 2 第二步 f n 1 f n 2 狀態方程 f n f n 1 f n 2 n 2 f 0 0,f 1 1,f 2 2 函式 int function int n int...

動態規劃 爬樓梯

假設你正在爬樓梯,需要n步你才能到達頂部。但每次你只能爬一步或者兩步,你能有多少種不同的方法爬到樓頂部?比如n 3,1 1 1 1 2 2 1 3,共有3種不同的方法 返回 3 解題思路 沒接觸過動態規劃的時候,我用排列組合做的,在我這篇部落格中 可以看一下。實際上,這個題目就是乙個斐波那契數列,這...