对于给定的一个二维矩阵,请转置后进行输出。
输入描述
对于一个n*m的矩阵,输入有n行,每行是m个以空格分隔的数字。
输出描述
n*m矩阵的转置矩阵。输出m行,每行是n个空格分隔的数据。
import java.io.*;
import java.util.*;
class Solution {
public void myFunc(ArrayList<ArrayList<Integer>> arr) {
int m = arr.toArray().length;
int n = arr.get(0).toArray().length;
for(int j=0 ; j<m ; j++){
for(int k=0 ; k<n ; k++)
{
System.out.print(arr.get(j).get(k)+" ");
}
System.out.println();
}
}
}
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
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);
}
}
int m = arr.toArray().length;
int n = arr.get(0).toArray().length;
ArrayList<ArrayList<Integer>> arr1 = new ArrayList<ArrayList<Integer>>();
for(int k=0 ; k<n ; k++){
ArrayList<Integer> row1 = new ArrayList<Integer>();
for(int j=0 ; j<m ; j++)
{
row1.add(arr.get(j).get(k));
}
arr1.add(row1);
}
new Solution().myFunc(arr1);
}
}
赛码网简单练习,感觉不够完善