美文网首页LeetCode
867. 转置矩阵

867. 转置矩阵

作者: 闭门造折 | 来源:发表于2018-11-18 16:27 被阅读12次

给定一个矩阵 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

思路

两个for循环嵌套
普通的矩阵遍历是

for(i in 行号){
    for(j in 列号){
        print A[i][j]
    }
}

我们需要得到转置结果,所以需要交换遍历顺序
即外层固定列号不变,通过行号改变得到不同行同一列的值

for(j in 列号){
    for(i in 行号){
        print A[i][j]
    }
}

性能分析

时间复杂度O(N^2),空间复杂度O(N)(新加行的时候需要额外一行用于存储)

具体代码

vector<vector<int>> transpose(vector<vector<int>>& A) {
    int rlen = A.size();  //行大小
    int clen = A[0].size(); //列大小
    vector<vector<int> > res; //结果集
    for(int i = 0; i < clen; i++){ //上方伪代码的实现
        vector<int> tmp;
        for(int j = 0; j < rlen; j++){
            tmp.push_back(A[j][i]);
        }
        res.push_back(tmp);
    }
    return res;
}

相关文章

  • 2021.2.25每日一题

    867. 转置矩阵[https://leetcode-cn.com/problems/transpose-matr...

  • 算法练习100天-第5天

    列别:数组 题目: 867. 转置矩阵 我的解题思路: 转置矩阵就是交换矩阵的行索引、列索引 定义一个新的二维数组...

  • 867. 转置矩阵

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

  • LeetCode 867. 转置矩阵

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

  • LeetCode-数组-867.转置矩阵

    题目描述 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。 水平翻转图片就是将图片的每一行都...

  • 2019-02-22 Day 48 待提高

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

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

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

  • 正交矩阵

    转置矩阵为其逆矩阵。

  • 2019-03-13

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

  • 教3妹学编程: 867. 转置矩阵

    2哥:3妹,又到了每日刷一题的时间了。 3妹:哦,2哥呀,今天是周六,我想好好休息一下, 睡个懒觉,看看浪姐3。 ...

网友评论

    本文标题:867. 转置矩阵

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