股票最佳购买时间

核心提示假设您有一个数组,第i个元素是第i天给定股票的价格。设计算法以找到最大的利润。您可以根据需要完成任意数量的交易。但是,您可能不能同时进行多个交易。分析这个问题可以看作是找到所有升序。例如,给定{5,1,2,3,4},在1购买并在4卖出与在1

假设你有一个数组,第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的资料和面试问题。如果你想在技术上提升自己,可以关注我,私信领取资料或者在评论区留下联系方式。有时间记得帮我点击转发给更多人看。

 
友情链接
鄂ICP备19019357号-22