二维数组行列调换
将二维数组中的行列互调显示出来
首先来看一个3*3的数组
1 2 3
4 5 6
7 8 9
行列转换后
1 4 7
2 5 8
3 6 9
看到上面这俩可以发现对角线 上的数是不动的
发生变化的数只有
2 3 6
4 7 8
用二维数组表示
[0][1] [0][2] [1][2]
由数组能发现
0<=橫行<length-1
橫行+1<=竖列<length
[1][0] [2][0] [2][1]
转换就是行列数值对调
定义数组
int arr[][] = new int[][] {{1,2,3},{4,5,6},{7,8,9}};
行列互换
for(int i=0; i< arr.length-1; i++) {
for(int j=i+1; j< arr[i].length; j++) {
int temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
完整代码
public class ArrayReverse {
public static void main(String[] args) {
int arr[][] = new int[][] {{1,2,3},{4,5,6},{7,8,9}};
reverse(arr);
printArray(arr);
}
public static void reverse(int arr[][]) {
for(int i=0; i< arr.length-1; i++) {
for(int j=i+1; j< arr[i].length; j++) {
int temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
public static void printArray(int array[][]){
for(int i=0;i<array.length; i++) {
for(int j = 0; j< array[i].length; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}
运行结果
1 4 7
2 5 8
3 6 9