我编写了一个程序,如果数组集是 {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;
}
}
提前致谢!