【发布时间】:2021-05-24 20:31:54
【问题描述】:
我需要将数组元素循环左移 n 个字符。
这是我的代码:
public static void moveLeft(int[] arr, int num) {
int[] temp = new int[num];
for (int i = 0; i < num; i++) {
temp[i] = arr[i];
}
for(int i = arr.length - num; i > 0; i++) {
arr[i-num] = arr[i];
}
for (int i = 0; i < num; i++) {
arr[i] = temp[i];
}
}
当我运行此代码时,我收到此错误:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException:索引 10 超出长度 10 的范围
【问题讨论】:
-
您的第二个循环在
i > 0时运行,并以i++作为更新。其中一个是错误的。
标签: java arrays indexoutofboundsexception shift