ソートされた配列内の任意の 2 つの数値間の最短距離を計算しようとしています。以下のアルゴリズムでテストしていますが、すぐ下に次のエラーが表示されます。私の配列が範囲外であることを示しているので、明らかに配列の長さではないインデックスにアクセスしようとしていますか? forループで長さをチェックしているので、理由はわかりません。誰も手がかりを持っていますか?
public static void getSmallestDistance(int[] integersCount)
{
int index = 0;
for(int i = 1; i < integersCount.length; i++ )
{
if( Math.abs(integersCount[index] - integersCount[index + 1]) >
Math.abs( integersCount[i] - integersCount[i + 1]))//line 73 were error is
{
index = i;
}
}
System.out.println(index);
}
次のエラーが表示されます。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1000
at ClosestPair.getSmallestDistance(ClosestPair.java:73)
at ClosestPair.main(ClosestPair.java:57)