剑指 Offer -- 股票交易

剑指 Offer 63 求股票交易的最大利润。

对应 Leetcode 的 https://leetcode.com/problems/best-time-to-buy-and-sell-stock/

只需用一个变量记录左侧的最小值,然后计算当前值和左侧最小值的差,找出这些差里的最大值即是最终结果。

对于可以进行多次交易的问题,可以参考题目给出的示例答案。通过寻找山峰和山谷(peak and valley),找每一个山谷后面的第一个山峰,这样山峰和山谷的差值之和就是最大利润。通过示意图可以看出,试图跳过当前山谷后面的山峰和山谷,想要找更高的山峰的做法,没有计算连续山峰和山谷差值和的利润大。

而对于最多两次买入卖出的问题,有些复杂。

https://segmentfault.com/a/1190000006672807

可以进行 k 次交易的问题,需要利用动态规划

https://blog.csdn.net/foreverling/article/details/43911309

原文地址:https://www.cnblogs.com/ainsliaea/p/11478677.html