LeetCode -- best-time-to-buy-and-sell-stock-iii

LeetCode -- best-time-to-buy-and-sell-stock-iii
LeetCode -- best-time-to-buy-and-sell-stock-iii
思路:使用贪心算法。
1、用sell1表示初始时的利润为0,buy1表示最便宜股票的价格,sell2表示交易两次的利润, buy2表示第一次售出股票后,再买入后面某天股票后的收益。
2、从左到右遍历,buy1表示前些天买入最便宜股票的股价,sell1保存前些天买入最便宜股票后再在股票最高时卖出股票的最大利润。
3、buy2表示第一次售出股票后, 再买入后面某一天股票后的净收益,sell2表示二次买卖或者一次买卖的最大收益。
注意:特殊情况。
buy后可能是负的,涉及到求最大,要注意初始化buy=Integer.MIN_VALUE;

LeetCode -- best-time-to-buy-and-sell-stock-iii