配列のleftRotationをしようとしています。しかし、コンパイル後に、私はここで配列例外durningコピー配列の配列ローテーション
java.lang.ArrayIndexOutOfBoundsException
に
を取得しています私のコードです:
public class MyTest{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n, k;
n = sc.nextInt();
k = sc.nextInt();
System.out.print(n+" "+k);
int inputArr[] = new int[n];
for(int i=0; i<n; i++){
inputArr[i] = sc.nextInt();
}
if(k > inputArr.length) {
k=k%inputArr.length;
}
int[] result = new int[inputArr.length];
System.arraycopy(inputArr, k+1, result, 0, k);
System.arraycopy(inputArr, 0, result, k, inputArr.length-1);
itemPrint(inputArr);
itemPrint(result);
}
private static void itemPrint(int[] inputArr) {
for(int i=0; i<inputArr.length; i++){
System.out.print(inputArr[i]+" ");
}
}
}
ここSystem.arraycopy(inputArr, k+1, result, 0, k);
で、私はエラーを取得しています。誰でも私が間違っているところを私に説明することはできますか?
あなたが間違っている点がアルゴリズムの中で最も重要な部分です。プログラミング、アルゴリズム、配列ローテーションを学んでいる場合は、自分でバグを発見した方がより効果的に学習できます – nandsito