2022. Tukar Tatasusunan 1D Kepada Tatasusunan 2D
Kesukaran: Mudah
Topik: Tatasusunan, Matriks, Simulasi
Anda diberikan tatasusunan integer 1-dimensi (1D) yang asal dan dua integer, m dan n. Anda ditugaskan untuk mencipta tatasusunan 2 dimensi (2D) dengan m baris dan n lajur menggunakan semua elemen daripada asal. Elemen daripada indeks 0 hingga n - 1 (
inklusif) asal hendaklah membentuk baris pertama tatasusunan 2D yang dibina, elemen daripada indeks n hingga 2 * n - 1 (inklusif ) hendaklah membentuk baris kedua tatasusunan 2D yang dibina, dan seterusnya. Kembalikan
tatasusunan m x n 2D yang dibina mengikut prosedur di atas, atau tatasusunan 2D kosong jika mustahil.
Contoh 1:
1 <= original.length <= 5 * 10
Bilakah boleh menukar asal kepada tatasusunan 2D dan bilakah mustahil?
Kita perlu mengikut langkah berikut:
: Penukaran daripada tatasusunan 1D kepada tatasusunan 2D hanya boleh dilakukan jika jumlah bilangan elemen dalam tatasusunan 1D (original.length) betul-betul sama dengan m * n, dengan m ialah bilangan baris dan n ialah bilangan lajur. Jika syarat ini tidak dipenuhi, kembalikan tatasusunan kosong.
: Jika penukaran boleh dilakukan, mulakan tatasusunan 2D dengan m baris dan n lajur, dan isikannya dengan mengulangi tatasusunan 1D dan mengisi baris tatasusunan 2D mengikut baris.
<?php /** * @param Integer[] $original * @param Integer $m * @param Integer $n * @return Integer[][] */ function construct2DArray($original, $m, $n) { ... ... ... /** * go to ./solution.php */ } // Example usage: //Example 1 $original = array(1, 2, 3, 4); $m = 2; $n = 2; print_r(construct2DArray($original, $m, $n)); //Output: [[1,2],[3,4]] //Example 2 $original = array(1, 2, 3); $m = 1; $n = 3; print_r(construct2DArray($original, $m, $n)); //Output: [[1,2,3]] //Example 3 $original = array(1, 2); $m = 1; $n = 1; print_r(construct2DArray($original, $m, $n)); //Output: [] ?> <h3> </h3> <ul> <li>Pengesahan Input<p>:<strong> </strong> </p>Kami mula-mula mengira panjang tatasusunan asal.<ul> <li>Jika panjangnya tidak sama dengan m * n, penukaran adalah mustahil dan kami mengembalikan tatasusunan kosong.</li> <li> </li> </ul> </li> <li>Pembinaan Tatasusunan 2D<p>:<strong> </strong> </p>Kami memulakan tatasusunan 2D bernama $result.<ul> <li>Kami menggunakan gelung bersarang di mana gelung luar berjalan m kali (untuk setiap baris) dan gelung dalam berjalan n kali (untuk setiap lajur dalam satu baris).</li> <li>Kami mengekalkan indeks $index yang menjejaki kedudukan kami dalam tatasusunan asal, menambahnya semasa kami meletakkan elemen ke dalam tatasusunan 2D.</li> <li> </li> </ul> </li> Contoh Output: </ul> <h3>Untuk contoh yang disediakan:</h3> <p> <br> </p>Outputnya ialah:<pre class="brush:php;toolbar:false">$original = array(1, 2, 3, 4); $m = 2; $n = 2; print_r(construct2DArray($original, $m, $n));
Array ( [0] => Array ( [0] => 1 [1] => 2 ) [1] => Array ( [0] => 3 [1] => 4 ) )
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberi
repositoribintang 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 Tukar Tatasusunan Kepada Tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!