public class LocalMinimum {
public static void main(String[] args) {
int[] A = {8, 5, 7, 2, 3, 0, 1, 9};
for (int i = 0; i < A.length; ++i) {
int prevValue = A[i - 1];
int nextValue = A[i + 1];
if ((A[i] < prevValue) && (A[i] < nextValue)) {
System.out.println(A[i] + " is a minimum value.");
}
else {
System.out.println(A[i] + " is not a minimum value.");
}
}
}
}
错误: 线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: -1
最佳答案
你应该在尝试访问 A 的元素时使用模块,这样它就永远不会越界。
喜欢:
int prevValue = A[((i - 1) % A.length)];
int nextValue = A[((i + 1) % A.length)];
这样,prevValue 的第一次迭代的结果将是最后一个数字,而 nextValue 的最后一次迭代的结果将是第一个数字。
关于java - 我需要在此数组中找到作为局部最小值的值,但我遇到了 arrayindexoutofbounds 异常。我怎样才能解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39950922/