195 字
1 分钟
867. 转置矩阵

Problem#

给你一个二维整数数组 matrix,返回 matrix 的 转置矩阵。

矩阵的 转置 是指将矩阵的行列互换,即 result[j][i] = matrix[i][j]。

https://leetcode.cn/problems/transpose-matrix/description/

示例 1:

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

示例 2:

输入:matrix = [[1,2,3],[4,5,6]] 输出:[[1,4],[2,5],[3,6]]

约束:

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

思路#

转置后行列互换,新矩阵的列数等于原矩阵的行数,新矩阵的行数等于原矩阵的列数。

class Solution:
def transpose(self, matrix: list[list[int]]) -> list[list[int]]:
rows, cols = len(matrix), len(matrix[0])
result = [[0] * rows for _ in range(cols)]
for i in range(rows):
for j in range(cols):
result[j][i] = matrix[i][j]
return result
import unittest
class TestTranspose(unittest.TestCase):
def setUp(self):
self.solution = Solution()
def test_square(self):
self.assertEqual(self.solution.transpose([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
[[1, 4, 7], [2, 5, 8], [3, 6, 9]])
def test_rectangular(self):
self.assertEqual(self.solution.transpose([[1, 2, 3], [4, 5, 6]]),
[[1, 4], [2, 5], [3, 6]])
def test_single(self):
self.assertEqual(self.solution.transpose([[1]]), [[1]])
if __name__ == '__main__':
unittest.main()
867. 转置矩阵
https://h1s97x.github.io/posts/coding/coding-867-transpose-matrix/
作者
H1S97X
发布于
2024-11-09
许可协议
CC BY-NC-SA 4.0
随机文章