Heim >Web-Frontend >js-Tutorial >Lösung: Lario- und Muigi-Pfeifenproblem
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
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];
Schritt 2:
Danach erstellen wir ein leeres Array, um die neuen sortierten Werte zu speichern:
let newNums = [];
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.
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; }
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!