Maison >développement back-end >tutoriel php >Convertir un tableau en tableau

Convertir un tableau en tableau

王林
王林original
2024-09-03 16:08:32804parcourir

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 :

Convert Array Into Array

  • Entrée : original = [1,2,3,4], m = 2, n = 2
  • Sortie : [[1,2],[3,4]]
  • Explication :
    • Le tableau 2D construit doit contenir 2 lignes et 2 colonnes.
    • Le premier groupe de n=2 éléments dans l'original, [1,2], devient la première ligne du tableau 2D construit.
    • Le deuxième groupe de n=2 éléments dans l'original, [3,4], devient la deuxième ligne du tableau 2D construit.

Exemple 2 :

Convert Array Into Array

  • Entrée : original = [1,2,3], m = 1, n = 3
  • Sortie : [[1,2,3]]
  • Explication :
    • Le tableau 2D construit doit contenir 1 ligne et 3 colonnes.
    • Placez les trois éléments d'origine dans la première ligne du tableau 2D construit.

Exemple 3 :

  • Entrée : original = [1,2], m = 1, n = 1
  • Sortie : []
  • Explication :
    • Il y a 2 éléments dans l'original.
    • Il est impossible d'insérer 2 éléments dans un tableau 2D 1x1, alors renvoyez un tableau 2D vide.

Contraintes :

  • 1 <= original.length <= 5 * 104
  • 1 <= original[i] <= 105
  • 1 <= m, n <= 4 * 104

Indice :

  1. Quand est-il possible de convertir l'original en tableau 2D et quand est-ce impossible ?
  2. C'est possible si et seulement si m * n == original.length
  3. S'il est possible de convertir l'original en tableau 2D, conservez un index i tel que original[i] soit le prochain élément à ajouter au tableau 2D.

Solution :

Nous devons suivre ces étapes :

  1. 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.

  2. 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 :

  • LinkedIn
  • GitHub

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn