【算法训练】LeetCode#867 转置矩阵

一、描述

867. 转置矩阵

给你一个二维整数数组 matrix, 返回 matrix转置矩阵

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

示例 1:

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

示例 2:

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

二、思路

起初想用循环遍历对调元素的方式解题,后来发现题目中涉及的输入不仅有n行n列,还有n行m列。因此采用先构造数组,然后找寻元素填充的方式得到转置。

三、解题

Java

public class LeetCode867 {
    public static int[][] transpose(int[][] matrix) {
        int row = matrix.length;
        int col = matrix[0].length;
        int[][] ans = new int[col][row];
        for (int i = 0 ; i < col ; i++){
            for (int j = 0 ; j < row ; j++){
                ans[i][j] = matrix[j][i];
            }
        }
        return ans;
    }
}

C++

vector<vector<int>> transpose(vector<vector<int>>& matrix) {
    int row = matrix.size();
    int col = matrix[0].size();
    vector<vector<int>>ans(col,vector<int>(row));//定义二维数组ans[][],n行 m列

    for (int i = 0 ; i < col ; i++){
        for (int j = 0 ; j < row ; j++){
            ans[i][j] = matrix[j][i];
        }
    }
    return ans;
}
posted @ 2023-07-23 21:56  小拳头呀  阅读(24)  评论(0编辑  收藏  举报