2257. Kira Sel Tidak Berkawal dalam Grid
Kesukaran: Sederhana
Topik: Tatasusunan, Matriks, Simulasi
Anda diberi dua integer m dan n mewakili grid 0-diindeks m x n. Anda juga diberikan dua pengawal tatasusunan integer 2D dan dinding di mana pengawal[i] = [barisi, coli] dan dinding[j] = [barisj, colj] mewakili kedudukan ith guard dan jth wall masing-masing.
Seorang pengawal boleh melihat setiap sel dalam empat arah mata angin (utara, timur, selatan atau barat) bermula dari kedudukan mereka melainkan dihalang oleh dinding atau pengawal lain. Sebuah sel dijaga jika terdapat sekurang-kurangnya seorang pengawal yang dapat melihatnya.
Kembalikan bilangan sel tidak berpenghuni yang tidak dijaga.
Contoh 1:
Contoh 2:
Kekangan:
Petunjuk:
Penyelesaian:
Kita perlu menandakan sel yang dikawal oleh sekurang-kurangnya seorang pengawal. Pengawal boleh melihat dalam empat arah mata angin (utara, selatan, timur, dan barat), tetapi penglihatan mereka disekat oleh dinding. Kita boleh mensimulasikan proses ini dan mengira bilangan sel yang tidak dikawal.
Permulaan Grid: Buat tatasusunan 2D untuk mewakili grid. Tandai sel dengan dinding, pengawal dan kawasan berkawal semasa kami mengulangi.
Simulasi Perlindungan Pengawal:
Mengira Sel Tidak Berkawal: Selepas memproses semua pengawal, kira sel yang bukan dinding, pengawal, mahupun berkawal.
Mari laksanakan penyelesaian ini dalam PHP: 2257. Kira Sel Tidak Berkawal dalam Grid
Penjelasan:
Permulaan:
- Grid dimulakan dengan 0 untuk sel kosong. Dinding dan pengadang ditanda dengan pemalar unik.
Simulasi Pengawal:
- Untuk setiap pengawal, simulasikan pergerakan dalam keempat-empat arah, tandakan sel sebagai dikawal sehingga melanggar dinding atau pengawal lain.
Mengira Sel Tidak Terjaga:
- Selepas memproses semua pengawal, lelaran melalui grid dan kira sel yang masih ditandakan sebagai 0.
Prestasi:
Oleh itu, kerumitan keseluruhan ialah O(m * n), yang cekap memandangkan kekangan masalah.
Pautan Kenalan
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberi repositori bintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna bagi saya!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Atas ialah kandungan terperinci Kira Sel Tidak Terkawal dalam Grid. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!