Rumah  >  Artikel  >  pembangunan bahagian belakang  >  . Matriks Lingkaran III

. Matriks Lingkaran III

王林
王林asal
2024-08-09 09:18:51531semak imbas

885. Matriks Lingkaran III

Sederhana

Topik: Tatasusunan, Matriks, Simulasi

Anda bermula pada sel (rStart, cStart) baris x grid cols menghadap ke timur. Sudut barat laut berada di baris dan lajur pertama dalam grid, dan sudut tenggara berada di baris dan lajur terakhir.

Anda akan berjalan dalam bentuk lingkaran mengikut arah jam untuk melawati setiap kedudukan dalam grid ini. Setiap kali anda bergerak di luar sempadan grid, kami meneruskan perjalanan kami di luar grid (tetapi mungkin kembali ke sempadan grid kemudian.). Akhirnya, kami mencapai semua baris * ruang kol grid.

Kembali tatasusunan koordinat yang mewakili kedudukan grid dalam susunan yang anda lawatinya.

Contoh 1:

. Spiral Matrix III

  • Input: baris = 1, kol = 4, rStart = 0, cStart = 0
  • Output: [[0,0],[0,1],[0,2],[0,3]]

Contoh 2:

. Spiral Matrix III

  • Input: baris = 5, kol = 6, rStart = 1, cStart = 4
  • Output: [[1,4],[1,5],[2,5],[2,4],[2,3],[1,3],[0,3] ,[0,4],[0,5],[3,5],[3,4],[3,3],[3,2],[2,2],[1,2],[ 0,2],[4,5],[4,4],[4,3],[4,2],[4,1],[3,1],[2,1],[1, 1],[0,1],[4,0],[3,0],[2,0],[1,0],[0,0]]

Kekangan:

  • 1 <= baris, kol <= 100
  • 0 <= rMula < baris
  • 0 <= cMula < cols

Penyelesaian:

Untuk menyelesaikan masalah ini, kita boleh ikuti langkah berikut:

  1. Arah Arah: Gunakan tatasusunan arah untuk memudahkan pergerakan dalam susunan yang betul (timur → selatan → barat → utara). Setiap arah akan mempunyai perubahan yang sepadan dalam indeks baris dan lajur.
  2. Pengurusan Langkah: Anda perlu mengawal berapa banyak langkah yang perlu diambil dalam setiap arah. Pada mulanya, anda bergerak 1 langkah ke timur, kemudian 1 langkah ke selatan, 2 langkah ke barat, 2 langkah ke utara, dan seterusnya.
  3. Semakan Sempadan: Pastikan selepas setiap pergerakan, anda menyemak sama ada kedudukan baharu berada dalam sempadan grid. Jika ya, tambahkannya pada tatasusunan hasil.
  4. Keadaan Berhenti: Hentikan gelung setelah anda melawati semua baris * kedudukan kol.

Mari laksanakan penyelesaian ini dalam PHP: 885. Matriks Lingkaran III






Penjelasan:

  1. Arah: Tatasusunan arah menyimpan perubahan dalam baris dan lajur untuk bergerak ke timur, selatan, barat dan utara.
  2. Pergerakan: Kami bermula pada (rStart, cStart) dan bergerak mengikut arah dalam corak lingkaran.
  3. Pemeriksaan Sempadan: Hanya tambahkan kedudukan untuk menghasilkan keputusan jika ia berada dalam grid.
  4. Kawalan Langkah: stepCount menguruskan bilangan langkah yang diambil dalam arah semasa sebelum membelok. Ia meningkat selepas dua pusingan.
  5. Penamatan: Gelung berterusan sehingga semua kedudukan dalam grid telah dilawati.

Pendekatan ini memastikan kami melawati setiap sel dalam grid dalam susunan lingkaran yang diperlukan.

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:

  • LinkedIn
  • GitHub

Atas ialah kandungan terperinci . Matriks Lingkaran III. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn