基本思想:
1. 遍历该数组 ,找出该数组中最小和最大值,则所求的两个整数的差值一定小于等于max - min;
2. 从头开始 , 一个一个元素与(max + min) / 2 比较,如果小于,则表示所求的两个整数的差值介于min 到 a[i]之间 ,更新max = a[i] ,如果大于,则表示所求的两个整数的差值介于a[i]到max之间 ,更新min = a[i] ; 如果小于min或者大于max ,continue
3. 最后结果为更新后的max和min
public static int minDiffOfTwoNum(int [] a) { //求数组中两个相差最小的数
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
int temp = 0;
for(int i = 0; i < a.length; i++) { // 得到最小值和最大值
if(min > a[i])
min = a[i];
if(max < a[i])
max = a[i];
}
System.out.println("min = " + min + "max = " + max);
for(int i = 0; i < a.length; i++) {
temp = a[i];
if(temp >= max || temp <= min)
continue;
else if(2 * temp > (min + max))
min = temp;
else
max = temp;
}
return max - min;
}