数组题目:转置矩阵

题目

标题和出处

标题:转置矩阵

出处:867. 转置矩阵

难度

1 级

题目描述

要求

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

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

示例图片

示例

示例 1:

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

示例 2:

输入: matrix   =   [[1,2,3],[4,5,6]] \texttt{matrix = [[1,2,3],[4,5,6]]} matrix = [[1,2,3],[4,5,6]]
输出: [[1,4],[2,5],[3,6]] \texttt{[[1,4],[2,5],[3,6]]} [[1,4],[2,5],[3,6]]

数据范围

  • m = matrix.length \texttt{m} = \texttt{matrix.length} m=matrix.length
  • n = matrix[i].length \texttt{n} = \texttt{matrix[i].length} n=matrix[i].length
  • 1 ≤ m , n ≤ 1000 \texttt{1} \le \texttt{m}, \texttt{n} \le \texttt{1000} 1m,n1000
  • 1 ≤ m × n ≤ 10 5 \texttt{1} \le \texttt{m} \times \texttt{n} \le \texttt{10}^\texttt{5} 1m×n105
  • -10 9 ≤ matrix[i][j] ≤ 10 9 \texttt{-10}^\texttt{9} \le \texttt{matrix[i][j]} \le \texttt{10}^\texttt{9} -109matrix[i][j]109

解法

思路和算法

已知矩阵 matrix \textit{matrix} matrix m m m n n n 列。记矩阵 matrix \textit{matrix} matrix 转置后的矩阵是 matrix T \textit{matrix}^\text{T} matrixT,则 matrix T \textit{matrix}^\text{T} matrixT 的行数等于 matrix \textit{matrix} matrix 的列数, matrix T \textit{matrix}^\text{T} matrixT 的列数等于 matrix \textit{matrix} matrix 的行数,即转置后的矩阵是 n n n m m m 列,且 matrix T [ j ] [ i ] = matrix [ i ] [ j ] \textit{matrix}^\text{T}[j][i]=\textit{matrix}[i][j] matrixT[j][i]=matrix[i][j],其中 0 ≤ i < m 0 \le i < m 0i<m 0 ≤ j < n 0 \le j < n 0j<n

创建 n n n m m m 列的转置矩阵,然后将原矩阵中的元素赋值到转置矩阵中的对应位置即可。

代码

class Solution {
    public int[][] transpose(int[][] matrix) {
        int m = matrix.length, n = matrix[0].length;
        int[][] transposed = new int[n][m];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                transposed[j][i] = matrix[i][j];
            }
        }
        return transposed;
    }
}

复杂度分析

  • 时间复杂度: O ( m n ) O(mn) O(mn),其中 m m m n n n 分别是矩阵 matrix \textit{matrix} matrix 的行数和列数。转置矩阵需要遍历原矩阵中的每个元素。

  • 空间复杂度: O ( 1 ) O(1) O(1)。除了返回值以外,使用的空间复杂度是常数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟大的车尔尼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值