java.lang.ArrayIndexOutOfBoundsException:90-旋转n*m数组
我昨天问了一个用n*m旋转二维阵列的解决方案。 我得到这个链接作为答案: 我尽了最大努力,我认为它很好用。是的,它适用于n*n数组,但是如果n和m不同,我会得到一个IndexOutOfBounds错误,我不知道为什么 这是我的密码:java.lang.ArrayIndexOutOfBoundsException:90-旋转n*m数组,java,arrays,error-handling,Java,Arrays,Error Handling,我昨天问了一个用n*m旋转二维阵列的解决方案。 我得到这个链接作为答案: 我尽了最大努力,我认为它很好用。是的,它适用于n*n数组,但是如果n和m不同,我会得到一个IndexOutOfBounds错误,我不知道为什么 这是我的密码: public void rot90DegRight(){ //get Matrix this.Matrix = getMatrix(); int rows = Matrix.length; int cols = Matri
public void rot90DegRight(){
//get Matrix
this.Matrix = getMatrix();
int rows = Matrix.length;
int cols = Matrix[0].length;
// create a mirror of current matrix
RGBColor[][] mirror = getMatrix();
// create a new matrix
for (int i = 0; i < rows; i++){
for (int j = 0; j < cols; j++){
Matrix[j][rows - i - 1] = mirror[i][j];
}
}
// replace cols count with rows count
int tmp = rows;
rows = cols;
cols = tmp;
}
public void rot90DegRight(){
//获取矩阵
this.Matrix=getMatrix();
int行=矩阵长度;
int cols=矩阵[0]。长度;
//创建当前矩阵的镜像
RGBColor[]mirror=getMatrix();
//创建一个新的矩阵
对于(int i=0;i
非常感谢你的帮助 因为旋转二维数组时,行变为列,列变为行。只有当n==m时,才能在同一矩阵中旋转。
如果n=m然后您需要声明一个新的二维数组。因为,旋转二维数组时,行变为列,列变为行。只有当n==m时,才能在同一矩阵中旋转。
如果n=那么你需要声明一个新的二维数组。好吧,你链接到的问题清楚地说明了解决方案是多维数组,即固定的行和列。它们不可能是交错的。好吧,您链接到的问题清楚地说明了解决方案是多维数组,即固定的行和列。它们不能参差不齐。