動態規劃系列---求陣列中兩個元素差的最大值
阿新 • • 發佈:2019-01-31
題目
求陣列中兩個元素差的最大值(後面的元素減去前面的元素);對應實際生活中的股票買賣,找出可能的最大收益;
思路
類似於求陣列連續和的最大值;
儲存最大差值和最小值,遍歷陣列,如果當前元素-min>最大差值,則更新最大差值;如果當前元素<最小值,則更新最小值;
實現
public static int max_difference(int[] a){
int len=a.length;
if(len<2){
return 0;
}
int min=Math.min(a[0 ], a[1]);
int max_diff=a[1]-a[0];
for(int i=2;i<len;i++){
if(a[i]-min>max_diff){
max_diff=a[i]-min;
}
if(a[i]<min){
min=a[i];
}
}
return max_diff;
}