Menu
CoddyTech

Set Matrix Zeroes

Input berupa grid bilangan bulat m × n, yang diberikan baris demi baris, sehingga matrix[i][j] berada di baris i dan kolom j. Di mana pun grid berisi 0, ubah seluruh baris dan seluruh kolom tersebut menjadi 0. Hanya nol yang sudah ada sejak awal yang dihitung: sel yang kamu ubah menjadi 0 tidak mengubah baris atau kolomnya sendiri. Kamu boleh mengubah grid secara langsung, lalu mengembalikannya.

Fungsi

setZeroes(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
grid yang terdiri dari bilangan bulat, satu list bagian dalam untuk setiap baris
Mengembalikaninteger-2d-array
matriks dengan setiap baris dan kolom yang memiliki 0 diubah menjadi 0

Batasan

  • m == matrix.length dan n == matrix[i].length
  • 1 ≤ m, n ≤ 1000 dan m × n ≤ 5000
  • Semua m baris berisi n nilai.
  • -1000 ≤ matrix[i][j] ≤ 1000

Contoh

Input
matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]
Output
[[3, 0, 1], [0, 0, 0], [2, 0, 4]]
Penjelasan
Satu-satunya 0 berada di baris 1, kolom 1. Baris 1 menjadi semuanya 0, begitu juga kolom 1, yang mengubah 8 dan 6 menjadi 0. Keempat sudut tidak berada di kedua garis tersebut dan nilainya tetap.
challenge icon

Pertanyaan lanjutan

Pendekatan terbaik di bawah ini menyimpan dua nilai boolean tambahan. Bisakah kamu cukup menggunakan satu, dengan menjadikan matrix[0][0] sebagai penanda untuk baris pertama?

Reset kode
def setZeroes(matrix):
    # Tulis kodemu di sini

Tes #1

Tes #2

Argumen

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

Output yang diharapkan

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