Description

Submission
class Solution {
public:
int maxProfit(vector<int>& prices) {
int hold = INT_MIN, sell = 0, cool= 0;
for(int p: prices) {
int hold2 = hold, sell2 = sell, cool2 = cool;
hold = max(hold2, cool2 - p); // hold a stock or buy
sell = hold2 + p;
cool = max(cool2, sell2);
}
return max(sell, cool);
}
};
// buy = max(buy2, cooldown2 - p) // hold a stock or buy
// sell = buy2 + p
// cooldown = max(cooldown2, sell2)
