* @lc app=leetcode id=309 lang=javascript
* [309] Best Time to Buy and Sell Stock with Cooldown
* @param {number[]} prices
var maxProfit = function (prices) {
if (prices == null || prices.length <= 1) return 0;
buy[1] = Math.max(-prices[0], -prices[1]);
sell[1] = Math.max(0, prices[1] - prices[0]);
for (let i = 2; i < prices.length; i++) {
// 如果买利润就是sell[i - 2] - prices[i], 注意这里是i - 2,不是 i-1 ,因为有cooldown的限制
buy[i] = Math.max(buy[i - 1], sell[i - 2] - prices[i]);
// 如果卖利润就是buy[i -1] + prices[i]
sell[i] = Math.max(sell[i - 1], buy[i - 1] + prices[i]);
return Math.max(buy[prices.length - 1], sell[prices.length - 1], 0);