java如何编写一个方法来反转2D数组
我有个问题要解决
Write a method that takes a two-dimensional array of type integer as a parameter and return the inverse of the array (the rows become the columns and vice versa).
这就是我通过搜索所做的,但它显示了一系列错误
public static class inverse{
public static int[][] arrayInverse(int[][] A){
int[][] B = new int[3][3];
for(int i=0; i<B.length/2;i++){
for (int j=0; j<B[i].length/2;j++) {
int swap = B[i][j];
B[B.length - i - 1] = swap;
}
}
return swap;
}
}
}
# 1 楼答案
需要在列和行之间替换
输出:
1 2 3
5.6.7
91011
12 13 14
1 5 9 12
2 6 10 13
371114
# 2 楼答案
这里有一个普遍的解决方案。它将转置任何矩阵,包括一个参差不齐的矩阵
印刷品
印刷品
# 3 楼答案
首先,如注释中所述,任务是transpose输入数组行变为列,反之亦然
如果输入的2D数组是正方形的(行数与列数相同),最有效的方法是交换主对角线上下的元素:
a[i][j] ⇄ a[j][i]
,而不使用额外的数组:然而,在矩形矩阵的一般情况下,可能需要创建一个大小为
M x N
而不是N x M
的新数组/矩阵,并以适当的顺序从输入中复制值(此时无需交换):