Java小记-矩阵转置

对于给定的一个二维矩阵,请转置后进行输出。

输入描述

对于一个n*m的矩阵,输入有n行,每行是m个以空格分隔的数字。

输出描述

n*m矩阵的转置矩阵。输出m行,每行是n个空格分隔的数据。

java 复制代码
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();
			}
		}
	}
}
相关推荐
Kuo-Teng4 分钟前
Leetcode438. 找到字符串中所有字母异位词
java·算法·leetcode
毕设小屋vx ylw28242612 分钟前
Java开发、Java Web应用、前端技术及Vue项目
java·前端·vue.js
TDengine (老段)17 分钟前
TDengine 字符串函数 CHAR 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
赵文宇(温玉)23 分钟前
构建内网离线的“github.com“,完美解决内网Go开发依赖
开发语言·golang·github
float_com27 分钟前
【java基础语法】------ 数组
java
qq74223498427 分钟前
Python操作数据库之pyodbc
开发语言·数据库·python
Joker1008528 分钟前
仓颉自定义序列化:从原理到高性能多协议实现
开发语言
Adellle32 分钟前
2.单例模式
java·开发语言·单例模式
xier_ran39 分钟前
Transformer:Decoder 中,Cross-Attention 所用的 K(Key)和 V(Value)矩阵,是如何从 Encoder 得到的
深度学习·矩阵·transformer
散峰而望41 分钟前
C++入门(一)(算法竞赛)
c语言·开发语言·c++·编辑器·github