Java 我需要找到这个数组中的局部极小值,但是我';我得到一个arrayindexoutofbounds异常。我怎样才能解决这个问题? 公共类LocalMinimum{ 公共静态void main(字符串[]args){ int[]A={8,5,7,2,3,0,1,9}; 对于(int i=0;i

Java 我需要找到这个数组中的局部极小值,但是我';我得到一个arrayindexoutofbounds异常。我怎样才能解决这个问题? 公共类LocalMinimum{ 公共静态void main(字符串[]args){ int[]A={8,5,7,2,3,0,1,9}; 对于(int i=0;i,java,algorithm,pseudocode,minimum,Java,Algorithm,Pseudocode,Minimum,错误: 线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:-1您应该在尝试访问A的iTen时使用模块,这样它就不会超出边界 比如: 这样,prevValue的第一次迭代结果将是最后一个数字,nextValue的最后一次迭代结果将是第一个数字。如果您正在编写 int prevValue = A[((i - 1) % A.length)]; int nextValue = A[((i + 1) % A.length)]; 在for循环中,从i

错误:
线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:-1

您应该在尝试访问A的iTen时使用模块,这样它就不会超出边界

比如:

这样,prevValue的第一次迭代结果将是最后一个数字,nextValue的最后一次迭代结果将是第一个数字。

如果您正在编写

int prevValue = A[((i - 1) % A.length)];
int nextValue = A[((i + 1) % A.length)];
在for循环中,从
i=0
开始,以
i=array.length-1
结束,请注意,在第一次和最后一次循环中,您将尝试从不存在的
array[-1]
array[array.length]
元素中获取值。尝试从
1
array.length-2
启动循环:

int prevValue = A[i - 1];
int nextValue = A[i + 1];
for(int i=1;i
迭代到
A.length-1
。现在,您尝试执行
A[i+1]
,这将超出范围,因为您当前迭代到
A.length
。尽管如此,我仍然收到相同的错误消息,因为它将超出[i-1]的范围。是的,我这样做并使代码正常工作,但我只想打印出第一个和最后一个值。谢谢你的快速回复
int prevValue = A[i - 1];
int nextValue = A[i + 1];
for (int i = 1; i < array.length - 2; i++) {
    // do your job
}