对于给定的一个二维矩阵,请转置后进行输出。
输入描述
对于一个n*m的矩阵,输入有n行,每行是m个以空格分隔的数字。
输出描述
n*m矩阵的转置矩阵。输出m行,每行是n个空格分隔的数据。
import java.io.*;
import java.util.*;public class ZhuanZhi {public static void main(String args[]) {String input = "1 2 3\r\n" + "4 5 6";Scanner cin = new Scanner(input);ArrayList<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();while (cin.hasNextLine()) {ArrayList<Integer> row = new ArrayList<Integer>();String line = cin.nextLine();if (line.length() > 0) {String[] arrLine = line.split(" ");for (int i = 0; i < arrLine.length; i++) {row.add(Integer.parseInt(arrLine[i]));}arr.add(row);}}new Solution().myFunc(arr);}
}class Solution {public void myFunc(ArrayList<ArrayList<Integer>> arr) {if (!(arr == null || arr.isEmpty() || arr.get(0).isEmpty())) {ArrayList<Integer> row = new ArrayList<Integer>();int r = arr.size();int l = arr.get(0).size();int[][] nn = new int[l][r];for (int i = 0; i < r; i++) {row = arr.get(i);for (int j = 0; j < row.size(); j++) {nn[j][i] = (row.get(j));}}for (int i = 0; i < l; i++) {for (int j = 0; j < r; j++) {System.out.print(nn[i][j] + " ");}System.out.println();}}}
}