動態規劃--爬樓梯問題(入門)

動態規劃算法要求將求解問題拆分爲一系列相互交疊的子問題。算法

動態規劃三要素:數組

  • 最優子結構
  • 邊界
  • 狀態轉移函數

問題描述:假設有n層臺階,你每次能爬1層或者2層,問你又多少種方法到達n層?函數

第一層:1種,記爲f(1)=1(邊界)blog

第二層:2種(走2步或走兩個1步),記爲f(2)=2方法

第三層:3種(在第一層走2步或在第二層走1步),記爲f(3)=f(1)+f(2)im

所以第n層就與第n-1和第n-2層有關。img

輸出:89動態規劃

使用這種方式會出現重複計算的問題,所以,通常動態規劃都會定義一個數組來存儲前面所用到的值,修改後代碼以下:co

相關文章
相關標籤/搜索