,它编译罚款,但是当我尝试运行它说,数组索引越界异常。例如,我想{{10,20,30},{40,50,60}}旋转到{{40,10},{50,20},{60,30}}旋转2D矩阵我想要一个二维矩阵,以旋转的权利
import java.util.*;
public class Rotate{
public static int[][] rotate(int[][] m) {
int [][] rotateM = new int[m[0].length][m.length];
for (int i= 0; i< m.length; i++){
for (int j= 0; j< m[0].length; j++){
rotateM[i][j] = m[j][m.length-i-1];
}
}
return rotateM;
}
public static void main(String[]args){
int[][]m = {{10,20,30},
{40,50,60}};
System.out.println(Arrays.toString(rotate(m)));
}
}
为什么你有'j = j ++'之类的? '++'操作符已经修改了这个值; 'j ++'是你所需要的。 – Amber 2010-04-25 08:20:43
您是否添加了跟踪语句来帮助追踪哪些值超出范围?就像上面的'rotateM [i] [j] = m [j] [m.length-i-1];'放在'System.out.println(“i =”+ i +“,j =” + j);' – MatrixFrog 2010-04-25 08:31:25
感谢您的帮助!它应该是rotateM而不是m。 – adam 2010-04-25 08:41:24