思考一个问题: 一个数组int [][] transpose(int[][] a), 现在需要生成一个新数组b, 该数组为a的转置数组
数组转置是指 将数组的行、列内容互换
分析: 二维数组的长度 是由数组多少行决定,即第1个[] 的值, 称为行,第2个[] 的值,称为列
现在要转置,也就是要把原来的行设为新数组的列, 原来的列设为新数组的行,
因此外层循环确定 子数组个数, 内层循环确定 每个子数组中每个元素
解决方法, 如下:
public int [][] transpose(int [][]a) {
int col = a.length;
int row = a[0].length;
int[][] b= new int[row][col];
for(int i=0; i<row; i++) {
for(int j=0; j<col; j++) {
b[i][j] = a[j][i];
}
}
return b;
}