1. 程式人生 > >動態規劃系列---求陣列中兩個元素差的最大值

動態規劃系列---求陣列中兩個元素差的最大值

題目

求陣列中兩個元素差的最大值(後面的元素減去前面的元素);對應實際生活中的股票買賣,找出可能的最大收益;

思路

類似於求陣列連續和的最大值;
儲存最大差值和最小值,遍歷陣列,如果當前元素-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; }