一、股票的最大利润(一次卖出)
一个数组代表股票每天的价格,可以选择从某一天买入,然后之后的一天卖出,求能够获得的最大收益。
例如,一只股票在某些时间节点的价格为{9,11,8,5,7,12,16,14}。在价格为5的时候买入并在价格为16时卖出,则能获得最大的利润为11.
思路:记录当前最小值和最大差值
1.最大利润就是计算后面的数字减去前面的数字得到的一个最大的差值;
2.求总体的最大差值,需要的数据:当前的最小值,当前的最大差值;遍历求解即可。
public class GuPiao {
public static void main(String[] args){
int[] prices={9,11,8,5,7,12,16,14};
int result=new GuPiao().maxProfit(prices);
System.out.println("最大收益为:"+result);
}
public int maxProfit(int[] arr){
int len=arr.length;
if(len<2)
return 0;
int minPrice=arr[0];
int maxDiff=arr[1]-minPrice;
for(int i=2;i<arr.length;i++){
if(arr[i-1]<minPrice)
minPrice=arr[i-1];