我需要对角地转换我的nXn方阵中的数字,就像你在常规转置中一样,只是成对地从第二位到n位。
例如:
int[][] matrix1 = {{11,12,13,14},
{15,16,17,18},
{19,20,21,22},
{23,24,25,26}} ;
int[][] result= {{11, 12, 15, 16},
{13, 14, 17, 18},
{19, 20, 23, 24},
{21, 22, 25, 26}} ;
请注意,最后2个数字会切换到下一行的前2个,如果有6个数字,最后2个会切换到中间2,依此类推。
代码必须以:
开头public static int[][] blocks (int[][] matrix, int sqrtN)
之前我使用的常规转置:
public static int[][] columns (int[][] matrix) {
int m = matrix.length;
int n = matrix[0].length;
int[][] columns = new int[n][m];
for (int x = 0; x < n; x++) {
for (int y = 0; y < m; y++) {
columns[x][y] = matrix[y][x];
}
}
return columns;
}
编辑:具体说明如下:
n必须有一个正方形&#34;函数接收矩阵sqrN ^ 2XsqrN ^ 2,数字sqrN表示所有块的大小。它的输出必须是一个二维数组,其数字是从左到右组织的矩阵块,直到向下。&#34;