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();
			}
		}
	}
}
相关推荐
2301_780789669 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
第九序言T9 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
学长毕设10 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
步行cgn10 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川11 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵11 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
程序喵大人11 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
秋天的怀念_David11 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas10011 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
niucloud-admin12 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php