Hello World

吞风吻雨葬落日 欺山赶海踏雪径

0%

数组按逆向求最大差值的算法

一道面试题

一个月内的股票价格数组arr[]={9,6,1,4,7,2,8,3………………},写一个方法求得买卖股票获得的最大利润。要求最大利润必须是卖股票的日志在买股票的日志之后,且只做一次循环。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void main(String[] args) {

int arr[] = {9,6,1,4,7,2,8,3};

int min = arr[0];
int maxGrep = arr[1] - arr[0];

for (int i = 1; i < arr.length; i++) {

if( arr[i] < min ) min = arr[i];
if(arr[i] - min > maxGrep){
maxGrep = arr[i] - min;
}
}

System.out.println(maxGrep);
}