美文网首页
12、转置矩阵

12、转置矩阵

作者: ZeroForSpider | 来源:发表于2018-11-07 20:38 被阅读22次
1、题目如下:

给定一个矩阵 A, 返回 A 的转置矩阵。

矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。

示例 1:

输入:[[1,2,3],[4,5,6],[7,8,9]]
输出:[[1,4,7],[2,5,8],[3,6,9]]
示例 2:

输入:[[1,2,3],[4,5,6]]
输出:[[1,4],[2,5],[3,6]]

提示:

1 <= A.length <= 1000
1 <= A[0].length <= 1000

2、解题思路

本题目较为简单,只需要将原矩阵的行列大小及元素交换即可。所以在写代码的时候可以定义一个原矩阵的列长度的行,原矩阵的行长度的列大小的矩阵,再交换行列顺序交换元素即可。

3、代码如下:

class Solution {
    public int[][] transpose(int[][] A) {
         int row=A.length,col=A[0].length;
         int [][] B=new int[col][row];
        for(int i=0;i<col;i++){
            for(int j=0;j<row;j++){
                B[i][j]=A[j][i];
            }
        }
        return B;
    }
}

public class MainClass {
    public static int[] stringToIntegerArray(String input) {
        input = input.trim();
        input = input.substring(1, input.length() - 1);
        if (input.length() == 0) {
          return new int[0];
        }
    
        String[] parts = input.split(",");
        int[] output = new int[parts.length];
        for(int index = 0; index < parts.length; index++) {
            String part = parts[index].trim();
            output[index] = Integer.parseInt(part);
        }
        return output;
    }
    
    public static int[][] stringToInt2dArray(String input) {
        JsonArray jsonArray = JsonArray.readFrom(input);
        if (jsonArray.size() == 0) {
          return new int[0][0];
        }
    
        int[][] arr = new int[jsonArray.size()][];
        for (int i = 0; i < arr.length; i++) {
          JsonArray cols = jsonArray.get(i).asArray();
          arr[i] = stringToIntegerArray(cols.toString());
        }
        return arr;
    }
    
    public static String int2dArrayToString(int[][] array) {
        if (array == null) {
            return "null";
        }
        if (array.length == 0) {
            return "[]";
        }
    
        StringBuilder sb = new StringBuilder("[");
        for (int[] item : array) {
            sb.append(Integer.toString(item));
            sb.append(",");
        }
    
        sb.setCharAt(sb.length() - 1, ']');
        return sb.toString();
    }
    
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = in.readLine()) != null) {
            int[][] A = stringToInt2dArray(line);
            
            int[][] ret = new Solution().transpose(A);
            
            String out = int2dArrayToString(ret);
            
            System.out.print(out);
        }
    }
}

4、运行结果如下:

image.png

相关文章

  • 12、转置矩阵

    1、题目如下: 给定一个矩阵 A, 返回 A 的转置矩阵。 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与...

  • 2019-02-22 Day 48 待提高

    1.转置矩阵 给定一个矩阵 A, 返回 A 的转置矩阵。 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列...

  • 机器学习里的数学基础——矩阵论

    1. 基本概念 1.1 向量及其转置 一个维列向量及其转置可记作: 1.2 矩阵及其转置 一个的矩阵及其的转置矩阵...

  • 正交矩阵

    转置矩阵为其逆矩阵。

  • 2019-03-13

    矩阵的转置则称 为A的转置,记为 设为矩阵,则为 矩阵 为对称矩阵,则 为反对称矩阵,则 为n阶方阵,,为对称矩阵...

  • 矩阵

    参考资料转置矩阵伴随矩阵

  • leetcode-数组篇-转置数组(867)

    题目 给定一个矩阵 A, 返回 A 的转置矩阵。 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 ...

  • LeetCode 867. 转置矩阵

    题目 给定一个矩阵 A, 返回 A 的转置矩阵。 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 ...

  • 转置矩阵

    题目: 题目的理解: 创建一个二维数组,保存交换行索引和列索引后的值。 python实现 提交 // END 多动...

  • LeetCode(867)

    题目描述 给定一个矩阵 A, 返回 A 的转置矩阵。 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引...

网友评论

      本文标题:12、转置矩阵

      本文链接:https://www.haomeiwen.com/subject/uorbxqtx.html