炒股,能够买卖多次,但是每次买完需要等一天才能再次买入,问最多能赚多少钱
炒股系列第四题了,还是用动态规划来做,b代表当前已买入的情况下的最大收益,s[i]表示第i天前已卖出时的最大收益,prev_s表示上次在第i天卖出时的最大收益。
b = max(b, prev_s[i-2] - prices[i]);
s[i] = max(prev_s[i], s[i-1], b+prices[i])分别表示上一次在第i天卖出,在第i天不卖出和在第i天卖出的最大值。
C++ Code
1 | class Solution { |