我正在为Java课程编写代码。请我们根据以下要求编写代码:
我们的代码将接收一个二维数组(一个矩阵),并将其顺时针旋转并返回一个新的旋转矩阵,而无需更改原始矩阵。
这是我的代码:
public int[][] rotateClockwise(int [][] array) {
int[][] arr = array;
int[][] rotated_arr = new int[arr[0].length][arr.length];
int row = 0, col = 0;
for (int i = 0; i < arr[0].length; i++)
for (int j = (arr.length - 1); j >= 0; j--) {
if (col == rotated_arr[0].length) {
col = 0;
row += 1;
}
rotated_arr[row][col] = arr[i][j];
col += 1;
}
return arr;
}
我收到以下错误消息: 线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:4
我找不到方法超出数组范围的地方。我很高兴看到是否有人可以找到该错误并在此处提及。