Bayangkan sebuah array dua dimensi dari nilai boolean, di mana 0s mewakili kuadrat rumput pada sebidang tanah persegi panjang dan 1s mewakili pagar.
Tulis fungsi yang menerima array 2D sebagai input dan tentukan apakah Anda dapat melakukan perjalanan dari satu area rumput ke area rumput lainnya, hanya menggunakan gerakan utara / timur / barat / selatan, tanpa berlari ke pagar.
Jika ada area rumput dalam array sepenuhnya tertutup oleh pagar (artinya Anda tidak dapat melakukan perjalanan N / E / W / S untuk mencapai setiap area rumput lain dalam array) fungsi tersebut harus mengembalikan false; jika tidak, itu harus mengembalikan true.
Di bawah ini adalah dua array sampel yang dapat Anda gunakan sebagai input, meskipun fungsi Anda harus dapat menangani tidak hanya ini tetapi setiap array 2D nilai boolean:
0 0 0 0 0
0 1 0 0 0
0 1 1 1 1
0 0 0 0 0
0 0 0 1 1
(should return true)
0 1 0 1 0
0 1 1 0 0
0 0 0 0 0
0 0 0 1 0
1 1 1 1 0
(should return false, since the middle 0 in the top row is fully enclosed)
Kode kerja terpendek menang. Saya akan memilih pemenang setelah satu minggu berlalu atau tidak ada pengiriman baru dalam 24 jam.
1 1 1; 1 0 1; 1 1 1? Ada satu sel rumput di tengah. Secara visual sel rumput di tengah sepenuhnya tertutup oleh pagar, tetapi menurut definisi Anda tidak.