思路:
假设第i天买入,minprice记下买入那天的价格,往下遍历,算出接下来每一天卖出可以得到的最大利润maxprofit,遇到更大的差值就重新赋值maxprofit,直到遍历到下一个比之前买入的价格还低的那天。更换买入时间点,即重新赋值minprice,计算下一轮每一天的最大利润,如此循环,直到遍历完整个prices,保留下来的maxprofit 就是最大利润。 中途更换买入节点的原因思考一下应该就知道,因为利润只能是后面的数减前面的数的差值。如果后面存在更大的数字,那一定是和这个最小的数得到的差值(利润)一定是更大的。
以下是JAVA代码