動態規划算法要求將求解問題拆分為一系列相互交疊的子問題。
動態規划三要素:
- 最優子結構
- 邊界
- 狀態轉移函數
問題描述:假設有n層台階,你每次能爬1層或者2層,問你又多少種方法到達n層?
第一層:1種,記為f(1)=1(邊界)
第二層:2種(走2步或走兩個1步),記為f(2)=2
第三層:3種(在第一層走2步或在第二層走1步),記為f(3)=f(1)+f(2)
因此第n層就與第n-1和第n-2層有關。
輸出:89
使用這種方式會出現重復計算的問題,因此,一般動態規划都會定義一個數組來存儲前面所用到的值,修改后代碼如下: