假设你有一个数组,第I个元素是给定股票在第I天的价格。
设计算法,求最大利润。您可以根据需要完成任意多的交易。但是,您可能无法同时进行多项交易。
分析
这个问题可以看作是寻找所有的升序。例如,给定{5,1,2,3,4},在1买入,在4卖出,与在1买入,在2卖出,在3买入,在3和4卖出是一样的。
我们可以扫描一次数组,然后按照升序找到所有的元素对。
Java解决方案
publicintmaxProfit {
int profit = 0;
对于{
int diff = prices[I]-prices[I-1];
如果{
利润+= diff;
}
}
returnprofit}
最后,经过这么多年的发展,我也总结了一套学习Java的资料和面试问题。如果你想在技术上提升自己,可以关注我,私信领取资料或者在评论区留下联系方式。有时间记得帮我点击转发给更多人看。