state transition
unhold[i] = max(unhold[i - 1], cooldown[i - 1]);
hold[i] = max(hold[i - 1], unhold[i - 1] - prices[i]);
cooldown[i] = hol[i - 1] + prices[i];
unhold[i] = max(unhold[i - 1], cooldown[i - 1]);
hold[i] = max(hold[i - 1], unhold[i - 1] - prices[i]);
cooldown[i] = hol[i - 1] + prices[i];