java - 我需要在此数组中找到作为局部最小值的值,但我遇到了 arrayindexoutofbounds 异常。我怎样才能解决这个问题?

标签 java algorithm pseudocode minimum

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/

相关文章:

algorithm - 朴素的 LFSR,将编程语言翻译成数学

algorithm - 预订系统是 NP Complete

java - 使用 Java 正则表达式提取包含 URL 的特定行

java - Maven - 将资源复制到 jar 中的特定位置

java - 如何获得近似解以获得通过所有节点的最短路径

c++ - 2 名玩家,pion 在矩阵中移动

java - Maven 使用 Maven 连接/合并两个依赖项的 META-INF/服务/文件?

java - Apache Camel 与地铁

algorithm - IBM 研究论文中的未知语法

pseudocode - 你如何在伪代码中创建一个函数