股票問題的通用解法是“動態規劃”,因爲它符合以下特點:
1、多階段求解模型:每一天就是一個新的階段;
2、無後效性:在狀態定義準確的前提下,後面階段的決策參考前面階段的決策;
做題總結:
- 121、122、123 都有自己的特殊性,可以結合題目的特點答題;
- 第 188 號問題最難,要搞清楚初始化的時候如何賦值;
- 其它問題只要準確定義狀態,狀態轉移方程不難得到,股票系列問題不是很難,要有信心做出來;
- 如果對這一類問題不熟悉的話,不要一開始就去嘗試優化空間(即狀態壓縮)的寫法,建議先把把主要精力考慮在定義狀態和狀態轉移上。寫對以後,再寫狀態壓縮就非常容易了。這些問題的空間都是足夠多的,狀態壓縮非必需。而狀態空間的壓縮,寫法是相對固定的,不太熟悉的朋友不用要求自己必須一步到位。
最後一道題是使用單調棧的,與整個系列沒有太大關係(算買一贈一,一起做了)。
題號 | 題解 |
---|---|
121. 買賣股票的最佳時機 | 暴力枚舉、動態規劃、差分思想 |
122. 買賣股票的最佳時機 II | 暴力搜索、貪心算法、動態規劃 |
123. 買賣股票的最佳時機 III | 動態規劃 |
188. 買賣股票的最佳時機 IV | 動態規劃 |
309. 最佳買賣股票時機含冷凍期 | 動態規劃 |
714. 買賣股票的最佳時機含手續費 | 動態規劃 |
901. 股票價格跨度 | 考察單調棧的用法,CSDN。 |