读书人

在数组中数目字减去它右边的数字得到

发布时间: 2012-10-12 10:17:04 作者: rapoo

在数组中,数字减去它右边的数字得到一个数对之差,求所有数对之差最大值

这是一道动态规划的题目,从左往右遍历数组,使用两个变量,一个变量记录开始值,一个记录结果,则有一下公式:

start=a[0];

start=max(start,a[i]));

result=max(result,start-a[i]);

代码如下:

public int findMaxAbs(int[]a){int result=0;int start=a[0];for(int i=1;i<a.length;i++){start=max(start,a[i]);result=max(result,start-a[i]);}return result;}public int max(int a,int b){return a>b?a:b;}


读书人网 >其他相关

热点推荐