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();
			}
		}
	}
}
相关推荐
萧鼎1 小时前
深入理解 Python Scapy 库:网络安全与协议分析的瑞士军刀
开发语言·python·web安全
Moss Huang1 小时前
docker-runc not installed on system
java·docker·容器
阿拉丁的梦3 小时前
教程1:用vscode->ptvsd-创建和调试一个UI(python)-转载官方翻译(有修正)
开发语言·python
木宇(记得热爱生活)3 小时前
一键搭建开发环境:制作bash shell脚本
开发语言·bash
麦兜*3 小时前
Spring Boot 集成 Docker 构建与发版完整指南
java·spring boot·后端·spring·docker·系统架构·springcloud
Cisyam^3 小时前
Go环境搭建实战:告别Java环境配置的复杂
java·开发语言·golang
CHENFU_JAVA4 小时前
使用EasyExcel实现Excel单元格保护:自由锁定表头和数据行
java·excel
IAR Systems4 小时前
在IAR Embedded Workbench for Arm中实现Infineon TRAVEO™ T2G安全调试
开发语言·arm开发·安全·嵌入式软件开发·iar
青云交5 小时前
Java 大视界 -- 基于 Java 的大数据实时流处理在智能电网分布式电源接入与电力系统稳定性维护中的应用(404)
java·大数据·分布式·智能电网·flink 实时流处理·kafka 数据采集·iec 61850 协议
jayzhang_5 小时前
SPARK入门
大数据·开发语言