. Petak Ajaib Dalam Grid

王林
王林asal
2024-08-10 06:44:32381semak imbas

840. Petak Ajaib Dalam Grid

Sederhana

Topik: Tatasusunan, Jadual Hash, Matematik, Matriks

3 x 3 segi ajaib ialah grid a3 x 3 yang diisi dengan nombor yang berbeza dari 1 hingga 9 supaya setiap baris, lajur dan kedua-dua pepenjuru semua mempunyai jumlah yang sama.

Memandangkan baris x kol grid integer, berapa banyak 3 x 3 subgrid ajaib segi empat tepat bersebelahan ada?

Nota: manakala segi empat sama ajaib hanya boleh mengandungi nombor dari 1 hingga 9, grid mungkin mengandungi nombor hingga 15.

Contoh 1:

. Magic Squares In Grid

  • Input: grid = [[4,3,8,4],[9,5,1,9],[2,7,6,2]]
  • Output: 1
  • Penjelasan: Subgrid berikut ialah petak ajaib 3 x 3:

. Magic Squares In Grid

sedangkan yang ini bukan:

. Magic Squares In Grid

Secara keseluruhan, hanya terdapat satu petak ajaib di dalam grid yang diberikan.

Contoh 2:

  • Input: grid = [[8]]
  • Output: 0

Kekangan:

  • baris == grid.panjang.
  • col == grid[i].panjang
  • 1 <= baris, kol <= 10
  • 0 <= grid[i][j] <= 15

Penyelesaian:

Kita perlu mengira berapa banyak subgrid bersebelahan 3x3 dalam grid yang diberikan membentuk segi empat sama ajaib. Petak ajaib ialah grid 3x3 di mana semua baris, lajur dan kedua-dua pepenjuru dijumlahkan kepada nilai yang sama, dan ia mengandungi nombor yang berbeza dari 1 hingga 9.

Untuk menyelesaikan masalah ini, kita boleh ikuti langkah berikut:

  1. Periksa sama ada Subgrid adalah Sihir:

    • Subgrid mesti mengandungi semua nombor berbeza dari 1 hingga 9.
    • Jumlah setiap baris, lajur dan pepenjuru hendaklah 15.
  2. Lelaran melalui Grid:

    • Memandangkan kami perlu menyemak subgrid 3x3, kami akan beralih daripada 0 kepada baris-2 untuk baris dan dari 0 kepada kol-2 untuk lajur.
    • Untuk setiap sudut kiri atas subgrid 3x3, ekstrak subgrid dan semak sama ada ia adalah segi empat sama ajaib.

Mari laksanakan penyelesaian ini dalam PHP: 840. Petak Ajaib Dalam Grid






Penjelasan:

  1. adalah fungsi Ajaib:

    • Mengekstrak subgrid 3x3.
    • Menyemak sama ada semua nombor adalah berbeza dan antara 1 hingga 9.
    • Mensahkan bahawa jumlah baris, lajur dan pepenjuru adalah kesemuanya 15.
  2. fungsi numMagicSquaresInside:

    • Lelaran ke atas semua subgrid 3x3 yang mungkin dalam grid yang diberikan.
    • Mengira berapa banyak subgrid itu ialah petak ajaib.

Kod ini berfungsi dengan cekap dalam kekangan, mengira semua subgrid persegi ajaib 3x3 dalam grid yang diberikan.

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 . Petak Ajaib Dalam Grid. 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