最近看到一个连续区间最大和的问题,很感兴趣,主要是因为这个问题可以用于求一段时间内的股票最大收益问题。
而一段连续的数字就是每一时刻股票的波动情况
以某指数为例:
下方红绿即为每一时段的变化,对应上方是当前时段对应的价格,在什么时间段买入和卖出才能获取最大的收益呢?我首先想到的就是在最低点买入,最高点卖出了,可以通过遍历求出前N项和,得到股票最高点和最低点的时刻,然后进行交易,最低点买入最高点卖出。
但是这样处理有一个问题,就是最高点可能提前于最低点出现,也就是说通过上述方法得到的结果可能为最小值,以至于亏了最多的钱,org 。
正确的做法应该是这样的,任意时刻作为结束点,我们都能从这个点往前找到最佳买入时机,以获取最大收益,这样我们可以算出每个时刻卖出能获得的最大收益,然后维护一个最大收益值的变量就可以了。思路有了我们实现起来就方便了