难度:Hard
解题思路:最多两次交易,求最大收益。可以从这一系列的一次交易,求最大收益开始。先求出最大收益区间,然后在区间的前面,内部,后面,寻找第二个交易,使其最大。
求内部时。
1 2 3 5 2 8,假设求得最大收益是1~8的区间,在此区间寻找第二个交易,则为8-2+5-1。
又可以表达为8-1+5-2。5-2,这不就是[2 3 5 2]逆向的最大交易嘛?!
代码如下:
1 | class Solution { |
代码结果:9ms,超过23.79%
不使用迭代器,再写一次代码。
1 | class Solution { |
运行时间:6ms,超过80.88%