題目如下:
分析:
假設,只有1個台階,那麼需要爬1步,只有1種方法。
假設,只有2個台階,那麼需要先爬1步再爬1步,或者爬2步,有2種方法。
假設,只有3個台階,那麼需要先爬1步再爬1步再爬1步
,或者爬2步再爬1步
,或者爬1步再爬2步
,有3種方法。
以此類推,最終可以找到規律,假設有n個台階,那麼最終結果等於爬n-1個台階和n-2個台階的方法總數。
(將乙個複雜的問題,轉移成另一種狀態,劃分為多個子問題)
題解:
動態規劃+滾動陣列
class solutionint 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 解題思路 沒接觸過動態規劃的時候,我用排列組合做的,在我這篇部落格中 可以看一下。實際上,這個題目就是乙個斐波那契數列,這...