美文网首页
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、转置矩阵

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