Menu
CoddyTech

Set Matrix Zeroes

Đầu vào là một lưới m × n gồm các số nguyên, được cho theo từng hàng, vì vậy matrix[i][j] nằm ở hàng i và cột j. Ở vị trí nào có số 0 trong lưới, hãy đặt toàn bộ hàng và toàn bộ cột tương ứng thành 0. Chỉ tính các số 0 có sẵn từ đầu: ô bạn đổi thành 0 sẽ không làm hàng hoặc cột của nó bị đổi thành 0. Bạn có thể thay đổi trực tiếp lưới, hãy trả về lưới đó.

Hàm

setZeroes(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
lưới số nguyên, mỗi hàng là một danh sách bên trong
Trả vềinteger-2d-array
ma trận có mọi hàng và mọi cột từng chứa số 0 đều được đặt thành 0

Ràng buộc

  • m == matrix.length và n == matrix[i].length
  • 1 ≤ m, n ≤ 1000 và m × n ≤ 5000
  • Tất cả các hàng m chứa n giá trị.
  • -1000 ≤ matrix[i][j] ≤ 1000

Ví dụ

Đầu vào
matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]
Đầu ra
[[3, 0, 1], [0, 0, 0], [2, 0, 4]]
Giải thích
Số 0 duy nhất nằm ở hàng 1, cột 1. Hàng 1 trở thành toàn số 0, cột 1 cũng vậy, khiến số 8 và số 6 chuyển thành 0. Bốn góc không nằm trên cả hai đường này nên giữ nguyên giá trị.
challenge icon

Câu hỏi mở rộng

Cách tiếp cận tốt nhất bên dưới dùng thêm hai giá trị boolean. Bạn có thể dùng một giá trị, để matrix[0][0] đại diện cho hàng đầu tiên không?

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

Kiểm thử #1

Kiểm thử #2

Đối số

matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]

Đầu ra mong đợi

[[3, 0, 1], [0, 0, 0], [2, 0, 4]]