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
}