Menu
CoddyTech

Transpose Matrix

Người mớiMảng và chuỗipython iconjava iconcpp iconc iconjs icon+10

Bạn nhận được một ma trận số nguyên dưới dạng danh sách các hàng: matrix[i][j] là giá trị ở hàng i, cột j. Hãy trả về ma trận chuyển vị của nó: giá trị ở hàng i, cột j chuyển đến hàng j, cột i, vì vậy mỗi hàng trở thành một cột. Ma trận không nhất thiết phải là ma trận vuông: ma trận m × n trở thành ma trận n × m.

Hàm

transpose(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
ma trận m × n, dưới dạng danh sách gồm m hàng, mỗi hàng có n số nguyên
Trả vềinteger-2d-array
ma trận chuyển vị n × m, dưới dạng danh sách gồm n hàng, mỗi hàng có m số nguyên

Ràng buộc

  • 1 ≤ m, n ≤ 1000, trong đó m = matrix.length và n = matrix[i].length
  • m × n ≤ 5000
  • Mỗi hàng có cùng độ dài n.
  • -1000 ≤ matrix[i][j] ≤ 1000

Ví dụ

Đầu vào
matrix = [[1, 2, 3], [4, 5, 6]]
Đầu ra
[[1, 4], [2, 5], [3, 6]]
Giải thích
Hàng [1, 2, 3] trở thành cột đầu tiên và [4, 5, 6] trở thành cột thứ hai. Đọc theo từng hàng, ta có kết quả [1, 4], [2, 5], [3, 6]: một ma trận 3 × 2.
challenge icon

Câu hỏi mở rộng

Giả sử ma trận được lưu dưới dạng một mảng phẳng gồm m × n giá trị, theo từng hàng. Bạn có thể chuyển vị một ma trận không vuông ngay trong mảng đó mà không cần mảng thứ hai không?

Đặt lại code
def transpose(matrix):
    # Viết code tại đây

Kiểm thử #1

Kiểm thử #2

Đối số

matrix = [[1, 2, 3], [4, 5, 6]]

Đầu ra mong đợi

[[1, 4], [2, 5], [3, 6]]