我写了一个程序,如果数组集是{1, 3, 6, 7, 12},它将返回两个数字之间的最小差距。换句话说,它将首先找到3和1、6和3、7和6以及12和7之间的差异。在计算它们的差异之后,它将返回最小的差异,在我们的例子中为1,因为6-7=1。
例如,如果给定数组集{60},该程序将返回0。
现在,如果我们的数组集是{},什么都没有,它也将返回0。然而,我无法让我的程序返回0!它会抛出异常。我错过了什么?我该如何解决这个问题?以下是我的程序:
public static void main(String[] args) {
int[] numberSet = {1, 3, 6, 7, 12};
//int[] numberSet = {};
System.out.println(minGap(numberSet));
}
public static int minGap(int[] numberSet) {
int[] differenceArray = new int[numberSet.length-1];
int smallestNum = 0;
if (numberSet.length < 2) {
return 0;
}
else {
for(int i = 0; i < numberSet.length-1; i++) {
differenceArray[i] = numberSet[i+1] - numberSet[i];
}
Arrays.sort(differenceArray);
smallestNum = differenceArray[0];
return smallestNum;
}
}
提前感谢!