动态规划系列---求数组中两个元素差的最大值

来源:互联网 发布:centos yum 升级gcc 编辑:程序博客网 时间:2024/05/16 03:57

题目

求数组中两个元素差的最大值(后面的元素减去前面的元素);对应实际生活中的股票买卖,找出可能的最大收益;

思路

类似于求数组连续和的最大值;
保存最大差值和最小值,遍历数组,如果当前元素-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;    }
0 0
原创粉丝点击