6.Best Time to Buy and Sell Stock with Cooldown
Solution:
class Solution
{
public:
int maxProfit(vector<int> &prices)
{
if (prices.size() == 0 || prices.size() == 1)
{
return 0;
}
int noStockPrev = 0;
int soldPrev = 0;
int inHandPrev = -prices[0];
for (int i = 1; i < prices.size(); i++)
{
int noStock = max(noStockPrev, soldPrev);
int sold = inHandPrev + prices[i];
int inHand = max(inHandPrev, (noStockPrev - prices[i]));
noStockPrev = noStock;
soldPrev = sold;
inHandPrev = inHand;
}
return max(noStockPrev, soldPrev);
}
};Last updated