AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

LeetCode 867. Transpose Matrix    原题链接    简单

作者: 作者的头像   wzc1995 ,  2019-01-15 11:58:51 ,  所有人可见 ,  阅读 760


0


题目描述

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

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

样例

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

注意

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

算法

(模拟) $O(nm)$
  • 新建一个数组,直接按顺序拷贝即可。

时间复杂度

  • 拷贝共需要 $O(nm)$ 的时间。

空间复杂度

  • 需要额外的数组存放答案,故空间复杂度为 $O(nm)$。

C++ 代码

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

        return B;
    }
};

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息