LeetCode-867. 转置矩阵(Transpose Matrix)

转置矩阵

给你一个二维整数数组 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]]

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 1000
  • 1 <= m * n <= 105
  • -109 <= matrix[i][j] <= 109

直接根据转置矩阵的定义来做就好。

定义: 设矩阵\(A\)\(m×n\)的矩阵,其转置矩阵\(A^T\)\(n×m\)的矩阵,且对于\(0\leq i<m, 0\leq j<n\),满足\(A[i][j]=A^T[j][i]\)

代码如下:

class Solution {
public:
    vector<vector<int>> transpose(vector<vector<int>>& matrix) {
        int m = matrix.size();
        int n = matrix[0].size();
        vector<vector<int>> ret(n, vector<int>(m));
        for (int i = 0; i < m; ++i) {
            for (int j = 0; j < n; ++j) {
                ret[j][i] = matrix[i][j];
            }
        }
        return ret;
    }
};

使用numpy也可以直接实现矩阵的转置

class Solution:
    def transpose(self, matrix: List[List[int]]) -> List[List[int]]:
        import numpy as np
        return np.transpose(matrix).tolist()
posted @ 2021-02-25 12:32  _Roki  阅读(256)  评论(0)    收藏  举报