Konvertieren Sie ein Array in ein Array

王林
Freigeben: 2024-09-03 16:08:32
Original
754 Leute haben es durchsucht

2022. Konvertieren Sie ein 1D-Array in ein 2D-Array

Schwierigkeit:Einfach

Themen:Array, Matrix, Simulation

Sie erhalten ein 0-indiziertes eindimensionales (1D) Ganzzahl-Array-Original und zwei Ganzzahlen, m und n. Ihre Aufgabe besteht darin, ein zweidimensionales (2D) Array mit m Zeilen und n Spalten unter Verwendung aller Elemente des Originals zu erstellen.

Die Elemente mit den Indizes 0 bis n - 1 (einschließlich) des Originals sollten die erste Zeile des konstruierten 2D-Arrays bilden, die Elemente mit den Indizes n bis 2 * n - 1 (einschließlich). ) sollte die zweite Zeile des erstellten 2D-Arrays bilden und so weiter.

Gib ein m x n 2D-Array zurück, das gemäß dem obigen Verfahren erstellt wurde, oder ein leeres 2D-Array, wenn dies nicht möglich ist.

Beispiel 1:

Convert Array Into Array

  • Eingabe:Original = [1,2,3,4], m = 2, n = 2
  • Ausgabe: [[1,2],[3,4]]
  • Erklärung:
    • Das erstellte 2D-Array sollte 2 Zeilen und 2 Spalten enthalten.
    • Die erste Gruppe von n=2 Elementen im Original, [1,2], wird zur ersten Zeile im konstruierten 2D-Array.
    • Die zweite Gruppe von n=2 Elementen im Original, [3,4], wird zur zweiten Zeile im konstruierten 2D-Array.

Beispiel 2:

Convert Array Into Array

  • Eingabe:Original = [1,2,3], m = 1, n = 3
  • Ausgabe: [[1,2,3]]
  • Erklärung:
    • Das erstellte 2D-Array sollte 1 Zeile und 3 Spalten enthalten.
    • Fügen Sie alle drei Elemente im Original in die erste Zeile des erstellten 2D-Arrays ein.

Beispiel 3:

  • Eingabe:Original = [1,2], m = 1, n = 1
  • Ausgabe: []
  • Erklärung:
    • Es gibt 2 Elemente im Original.
    • Es ist unmöglich, 2 Elemente in ein 1x1 2D-Array einzufügen, also geben Sie ein leeres 2D-Array zurück.

Einschränkungen:

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

Hinweis:

  1. Wann ist es möglich, das Original in ein 2D-Array umzuwandeln, und wann ist dies nicht möglich?
  2. Es ist genau dann möglich, wenn m * n == original.length
  3. Wenn es möglich ist, das Original in ein 2D-Array zu konvertieren, behalten Sie einen Index i bei, sodass original[i] das nächste Element ist, das dem 2D-Array hinzugefügt wird.

Lösung:

Wir müssen diese Schritte befolgen:

  1. Überprüfen Sie, ob eine Konvertierung möglich ist: Die Konvertierung von einem 1D-Array in ein 2D-Array ist nur möglich, wenn die Gesamtzahl der Elemente im 1D-Array (original.length) genau gleich ist m * n, wobei m die Anzahl der Zeilen und n die Anzahl der Spalten ist. Wenn diese Bedingung nicht erfüllt ist, geben Sie ein leeres Array zurück.

  2. Erstellen Sie das 2D-Array: Wenn die Konvertierung möglich ist, initialisieren Sie ein 2D-Array mit m Zeilen und n Spalten und füllen Sie es, indem Sie über das 1D-Array iterieren und die Zeile des 2D-Arrays ausfüllen zeilenweise.

Lassen Sie uns diese Lösung in PHP implementieren: 2022. Konvertieren Sie ein 1D-Array in ein 2D-Array

<?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>
  
  
  Erläuterung:
</h3>

<ul>
<li>
<p><strong>Eingabevalidierung</strong>:</p>

<ul>
<li>Wir berechnen zunächst die Länge des ursprünglichen Arrays.</li>
<li>Wenn die Länge nicht gleich m * n ist, ist die Konvertierung nicht möglich und wir geben ein leeres Array zurück.</li>
</ul>


</li>

<li>

<p><strong>2D-Array-Konstruktion</strong>:</p>

<ul>
<li>Wir initialisieren ein 2D-Array mit dem Namen $result.</li>
<li>Wir verwenden eine verschachtelte Schleife, bei der die äußere Schleife m-mal (für jede Zeile) und die innere Schleife n-mal (für jede Spalte in einer Zeile) ausgeführt wird.</li>
<li>Wir pflegen einen Index $index, der unsere Position im ursprünglichen Array verfolgt und ihn erhöht, wenn wir Elemente im 2D-Array platzieren.</li>
</ul>


</li>

</ul>

<h3>
  
  
  Beispielausgabe:
</h3>

<p>Für das bereitgestellte Beispiel:<br>
</p>

<pre class="brush:php;toolbar:false">$original = array(1, 2, 3, 4);
$m = 2;
$n = 2;
print_r(construct2DArray($original, $m, $n));
Nach dem Login kopieren

Die Ausgabe wird sein:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
        )

    [1] => Array
        (
            [0] => 3
            [1] => 4
        )
)
Nach dem Login kopieren

Dieser Ansatz stellt sicher, dass das 1D-Array korrekt in das gewünschte 2D-Array konvertiert wird, und er verarbeitet Randfälle effizient, indem er prüft, ob die Konvertierung möglich ist.

Kontaktlinks

Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!

Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:

  • LinkedIn
  • GitHub

Das obige ist der detaillierte Inhalt vonKonvertieren Sie ein Array in ein Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage