Skip to content

[LeetCode] 867. Transpose Matrix #867

Open
@grandyang

Description

@grandyang

Given a matrix A, return the transpose of A.

The transpose of a matrix is the matrix flipped over it's main diagonal, switching the row and column indices of the matrix.

Example 1:

Input: [[1,2,3],[4,5,6],[7,8,9]]
Output: [[1,4,7],[2,5,8],[3,6,9]]

Example 2:

Input: [[1,2,3],[4,5,6]]
Output: [[1,4],[2,5],[3,6]]

Note:

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

这道题让我们转置一个矩阵,在大学的线性代数中,转置操作应该说是非常的常见。所谓矩阵的转置,就是把 mxn 的矩阵变为 nxm 的,并且原本在 A[i][j] 位置的数字变到 A[j][i] 上即可,非常的简单直接。而且由于此题又限定了矩阵的大小范围为 [1, 1000],所以不存在空矩阵的情况,因而不用开始时对矩阵进行判空处理,直接去获取矩阵的宽和高即可。又因为之前说了转置会翻转原矩阵的宽和高,所以我们新建一个 nxm 的矩阵,然后遍历原矩阵中的每个数,将他们赋值到新矩阵中对应的位置上即可,参见代码如下:

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

Github 同步地址:

#867

参考资料:

https://leetcode.com/problems/transpose-matrix/

https://leetcode.com/problems/transpose-matrix/discuss/146797/C%2B%2BJavaPython-Easy-Understood

LeetCode All in One 题目讲解汇总(持续更新中...)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions