Heim > Web-Frontend > js-Tutorial > Hauptteil

Lösung: Lario- und Muigi-Pfeifenproblem

PHPz
Freigeben: 2024-09-04 16:38:10
Original
1001 Leute haben es durchsucht

Solution: Lario and Muigi Pipe Problem

Problem
Sieht so aus, als ob irgendein Gangster-Klempner und sein Bruder wieder herumgelaufen sind und eure Bühnen beschädigt haben.

Die Rohre, die die Stufen Ihres Levels miteinander verbinden, müssen repariert werden, bevor Sie weitere Beschwerden erhalten.

Die Pipes sind korrekt, wenn jedes Pipe nach dem ersten um 1 mehr ist als das vorherige.

Aufgabe
Geben Sie anhand einer Liste eindeutiger Zahlen, die in aufsteigender Reihenfolge sortiert sind, eine neue Liste zurück, sodass die Werte für jeden Index vom Minimalwert bis zum Maximalwert (beide eingeschlossen) um 1 erhöht werden.

Beispiel
Eingabe: 1,3,5,6,7,8 Ausgabe: 1,2,3,4,5,6,7,8

Lösungsaufschlüsselung

Schritt 1:

Zuerst müssen wir den Maximal- und Minimalwert ermitteln. Ich weiß, was Sie denken, wir können Math.max und Math.min verwenden.

In diesem Szenario ist das nicht der Fall. Dies ist ein gültiger Ansatz, aber unnötig, da die Eingabeliste bereits in aufsteigender Reihenfolge sortiert wurde.

Beim Sortieren ist es eine Garantie, dass das Element am Index 0 (d. h. Zahlen[0]) den kleinsten Wert hat, genau wie das letzte Element. Daher ist der direkte Zugriff auf das erste und letzte Element effizienter und einfacher.

Also finden wir die Zahl am Index 0 und am letzten und initialisieren einige Variablen, um diese Werte für uns zu speichern:

    let minVal = numbers[0];
    let maxVal = numbers[numbers.length - 1];
Nach dem Login kopieren

Schritt 2:

Danach erstellen wir ein leeres Array, um die neuen sortierten Werte zu speichern:

    let newNums = [];
Nach dem Login kopieren

Schritt 3:

Durchlaufen Sie die gesamte Liste

sei i = minVal; Initialisiert den Schleifenzähler i auf den Wert von minVal. Hier beginnt unsere Schleife.

i <= maxVal; ist die Schleifenbedingung. Die Schleife läuft weiter, solange i kleiner oder gleich maxVal ist. Sobald ich maxVal überschreite, stoppt die Schleife.

i++ dient als unser Inkrementator. Nach jeder Iteration unserer for-Schleife wird der Wert von i um 1 erhöht

Schritt 4:

Anschließend hängen wir den inkrementierten Wert von i mit der Methode array.push() an unser leeres Array newNums an.

Dann geben wir den Endwert unseres Arrays newNums zurück.

Endgültige Lösung

function pipeFix(numbers) {

    //   find the minimum and maximum values in the list
    let minVal = numbers[0];
    let maxVal = numbers[numbers.length - 1];

    //   create an array to store the sorted values in ascending order
    let newNums = [];

    //   loop through the sorted array, from smallest value to the largest
    for (let i = minVal; i <= maxVal; i++) {
        newNums.push(i);
    }

    return newNums;
}
Nach dem Login kopieren

Ich hoffe, dieser Artikel hilft. Wenn Ihnen der Artikel gefällt, hinterlassen Sie bitte ein „Gefällt mir“ und hinterlassen Sie Ihre Bedenken gerne im Kommentarbereich. Das ist alles für heute.

Das obige ist der detaillierte Inhalt vonLösung: Lario- und Muigi-Pfeifenproblem. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!