题目描述:
给定一个数组,数组中的一个数减去它右边的子数组中的某个数得到一个差值 diff ,
求所有可能的差值中最大的差值diffMax。
首先想到最简单的方法是暴力方法,即从第一个元素开始,遍历第一个元素后面的所有元素,
得出最大差值 diff,再从第二个元素开始 重复操作,最终得出最大差值 diffMax,时间复杂度为 n*n.
具体代码:
public static int getMax(int[] a){
if(a == null || a.length == 1)
return Integer.MIN_VALUE;
int maxDiff = Integer.MIN_VALUE;
int len = a.length;
for(int i = 0;i < len;i++){
for(int j = i+1;j < len; j++){
int temp = a[i] - a[j];
if(temp > maxDiff)
maxDiff = temp;
}
}
return maxDiff;
}