Menu
CoddyTech

Rotting Oranges

SedangGrafQueuepython iconjava iconcpp iconc iconjs icon+10

Kamu mendapatkan grid berupa list baris dengan panjang yang sama. Setiap sel bernilai 0 (kosong), 1 (jeruk segar), atau 2 (jeruk busuk). Setiap menit, setiap jeruk segar yang berbagi sisi dengan jeruk busuk, di atas, di bawah, di kiri, atau di kanan, akan menjadi busuk. Kembalikan jumlah menit hingga tidak ada jeruk segar yang tersisa, atau -1 jika ada jeruk segar yang tidak akan pernah membusuk. Grid yang tidak memiliki jeruk segar sejak awal membutuhkan waktu 0 menit.

Fungsi

orangesRotting(grid: integer-2d-array) → integer
gridinteger-2d-array
grid, satu list berisi 0, 1, dan 2 untuk setiap baris
Mengembalikaninteger
jumlah menit hingga tidak ada jeruk yang segar, atau -1 jika hal itu tidak pernah terjadi

Batasan

  • 1 ≤ grid.length ≤ 150
  • 1 ≤ grid[i].length ≤ 150
  • Setiap baris memiliki panjang yang sama.
  • Setiap grid[i][j] bernilai 0, 1 atau 2.

Contoh

Input
grid = [[2, 1, 1, 0], [0, 1, 0, 1], [1, 1, 1, 1]]
Output
6
Penjelasan
Sel adalah (baris, kolom). Pembusukan mengikuti satu-satunya jalur dari (0,0) dan mencapai (2,3) pada menit ke-5. Jeruk di (1,3) hanya bersentuhan dengan (2,3), jadi jeruk itu membusuk paling akhir, pada menit ke-6.
challenge icon

Pertanyaan lanjutan

Misalkan setiap jeruk segar membutuhkan jumlah menit yang berbeda untuk membusuk setelah jeruk di sebelahnya membusuk. Bagaimana kamu menemukan waktu selesainya?

Reset kode
def orangesRotting(grid):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

grid = [[2, 1, 1, 0], [0, 1, 0, 1], [1, 1, 1, 1]]

Output yang diharapkan

6