1568. Bilangan Hari Minimum untuk Memutuskan Pulau
Kesukaran:Sukar
Topik:Tatasusunan, Carian Pertama Kedalaman, Carian Luas-Pertama, Matriks, Komponen Bersambung Kuat
Anda diberi grid grid binari m x n di mana 1 mewakili tanah dan 0 mewakili air.pulauialah kumpulan maksima4 arah(mendatar atau menegak) bersambung 1.
Grid itu dikatakanbersambungjika kita adatepat satu pulau, sebaliknya dikatakanterputus.
Dalam satu hari, kita dibenarkan menukar **** mana-mana sel tanah tunggal (1) kepada sel air (0).
Kembalijumlah hari minimum untuk memutuskan sambungan grid.
Contoh 1:
Contoh 2:
Kekangan:
Petunjuk:
Penyelesaian:
Kita perlu mempertimbangkan langkah-langkah berikut:
Semak Ketersambungan Awal: Mula-mula, semak sama ada grid sudah terputus sambungan dengan menentukan sama ada terdapat lebih daripada satu pulau dalam grid. Jika ia sudah terputus, kembalikan 0.
Semak Jika Penyingkiran Tunggal Memutuskan Sambungan Pulau: Lelaran melalui setiap sel grid. Tukar sel dari 1 kepada 0 buat sementara waktu (jika 1) dan semak sama ada grid terputus sambungan dengan mengira bilangan pulau. Jika menukar sel tunggal memutuskan sambungan pulau, kembalikan 1.
Pemutus Sambungan Dua Hari: Jika tiada penukaran sel tunggal memutuskan sambungan pulau, maka grid boleh diputuskan sambungan dengan menukar mana-mana dua sel darat bersebelahan. Oleh itu, kembali 2.
Mari kita laksanakan penyelesaian ini dalam PHP:1568. Bilangan Hari Minimum untuk Memutuskan Pulau
Penjelasan:
Hubungi Pautan
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberirepositoribintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna buat saya!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Atas ialah kandungan terperinci Bilangan Hari Minimum untuk Memutuskan Sambungan Pulau. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!