在数组中,数字减去它右边的数字得到一个数对之差,求所有数对之差最大值
这是一道动态规划的题目,从左往右遍历数组,使用两个变量,一个变量记录开始值,一个记录结果,则有一下公式:
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;}