Maison > Article > développement back-end > Convertir un tableau en tableau
2022. Convertir un tableau 1D en tableau 2D
Difficulté :Facile
Sujets :Tableau, Matrice, Simulation
Vous recevez un tableau d'entiers indexé à 0 à une dimension (1D) d'origine et deux entiers, m et n. Vous êtes chargé de créer un tableau bidimensionnel (2D) avec m lignes et n colonnes en utilisant tous les éléments de l'original.
Les éléments des indices 0 à n - 1 (inclus) de l'original doivent former la première ligne du tableau 2D construit, les éléments des indices n à 2 * n - 1 (inclus ) devrait former la deuxième ligne du tableau 2D construit, et ainsi de suite.
Renvoyer un tableau 2D m x n construit selon la procédure ci-dessus, ou un tableau 2D vide si c'est impossible.
Exemple 1 :
Exemple 2 :
Exemple 3 :
Contraintes :
Indice :
Solution :
Nous devons suivre ces étapes :
Vérifier si la conversion est possible : La conversion d'un tableau 1D en un tableau 2D n'est possible que si le nombre total d'éléments dans le tableau 1D (original.length) est exactement égal à m * n, où m est le nombre de lignes et n est le nombre de colonnes. Si cette condition n'est pas remplie, renvoie un tableau vide.
Créer le tableau 2D : Si la conversion est possible, initialisez un tableau 2D avec m lignes et n colonnes, et remplissez-le en itérant sur le tableau 1D et en remplissant la ligne du tableau 2D par rangée.
Implémentons cette solution en PHP : 2022. Convertir un tableau 1D en tableau 2D
<?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> Explication: </h3> <ul> <li> <p><strong>Validation des entrées</strong> :</p> <ul> <li>Nous calculons d'abord la longueur du tableau d'origine.</li> <li>Si la longueur n'est pas égale à m * n, la conversion est impossible, et on renvoie un tableau vide.</li> </ul> </li> <li> <p><strong>Construction de tableaux 2D</strong> :</p> <ul> <li>On initialise un tableau 2D nommé $result.</li> <li>Nous utilisons une boucle imbriquée où la boucle externe s'exécute m fois (pour chaque ligne) et la boucle interne s'exécute n fois (pour chaque colonne d'une ligne).</li> <li>Nous maintenons un index $index qui suit notre position dans le tableau d'origine, en l'incrémentant à mesure que nous plaçons des éléments dans le tableau 2D.</li> </ul> </li> </ul> <h3> Exemple de sortie : </h3> <p>Pour l'exemple fourni :<br> </p> <pre class="brush:php;toolbar:false">$original = array(1, 2, 3, 4); $m = 2; $n = 2; print_r(construct2DArray($original, $m, $n));
Le résultat sera :
Array ( [0] => Array ( [0] => 1 [1] => 2 ) [1] => Array ( [0] => 3 [1] => 4 ) )
Cette approche garantit que le tableau 1D est correctement converti en tableau 2D souhaité et gère efficacement les cas extrêmes en vérifiant si la conversion est possible.
Liens de contact
Si vous avez trouvé cette série utile, pensez à donner une étoile au référentiel sur GitHub ou à partager la publication sur vos réseaux sociaux préférés ?. Votre soutien signifierait beaucoup pour moi !
Si vous souhaitez du contenu plus utile comme celui-ci, n'hésitez pas à me suivre :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!