我的代码抛出运行时错误,任何人都可以解释原因吗?我的解决方案包括向数组中添加j
和i
之间的差异,然后找到两者中的最小值,只返回它。但由于某种原因,它给我一个超时错误。问题是这个问题:
我们将两个数组值之间的距离定义为两个值之间的索引数。给定
A
找到阵列中任何一对相等元素之间的最小距离。如果不存在这样的值,请打印-1
最小差异由指数j
和指数i
之间的差值计算得出
static int minimumDistances(int[] a) {
int[] difference = new int[a.length];
int lowest = 0;
boolean pairFound = false;
for(int i = 0; i < a.length; i++) {
for(int j = i + 1; j < a.length; j++) {
for(int l = 0; l < difference.length; l++) {
if(a[i] == a[j]) {
difference[l] = j - i;
pairFound = true;
} else if(pairFound == false) {
lowest = -1;
}
}
}
}
if(pairFound == true) {
lowest = difference[0];
for(int i = 0; i < difference.length; i++) {
if(difference[i] < lowest) {
lowest = difference[i];
}
}
}
return lowest;
}
尝试一下,检查一下是否有效:
int[] difference = new int[a.length];