美文网首页
867. Transpose Matrix

867. Transpose Matrix

作者: 4v3r9 | 来源:发表于2018-12-04 19:45 被阅读1次

1 Question

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 <= A.length <= 1000
1 <= A[0].length <= 1000

2 Solution: Copy Directly

The transpose of a matrix A with dimensions R x C is a matrix ans with dimensions C x R for which ans[c][r] = A[r][c].

Let's initialize a new matrix ans representing the answer. Then, we'll copy each entry of the matrix as appropriate.

class Solution(object):
    def transpose(self, A):
        R, C = len(A), len(A[0])
        ans = [[None] * R for _ in xrange(C)]
        for r, row in enumerate(A):
            for c, val in enumerate(row):
                ans[c][r] = val
        return ans

        #Alternative Solution:
        #return zip(*A)

Complexity Analysis

  • Time Complexity: O(R∗C), where R and C are the number of rows and columns in the given matrix A.
  • Space Complexity: O(R∗C), the space used by the answer.

相关文章

网友评论

      本文标题:867. Transpose Matrix

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