LeetCode 309. Best Time to Buy and Sell Stock with Cooldown
Solution1:
比较有难度的一道动态规划题了!
参考网址:http://zxi.mytechroad.com/blog/dynamic-programming/leetcode-309-best-time-to-buy-and-sell-stock-with-cooldown/
每一天都对应着一个动作,buy,sell和rest。相当于维护三个数组。。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int sold = 0;
int rest = 0;
int hold = INT_MIN;
for (const int price : prices) {
int prev_sold = sold;
sold = hold + price;
hold = max(hold, rest - price);
rest = max(rest, prev_sold);
}
return max(rest, sold);
}
};