Maison > interface Web > js tutoriel > le corps du texte

Solution : problème de canalisation Lario et Muigi

PHPz
Libérer: 2024-09-04 16:38:10
original
1001 Les gens l'ont consulté

Solution: Lario and Muigi Pipe Problem

Problème
On dirait qu'un plombier voyou et son frère courent partout et endommagent à nouveau vos scènes.

Les tuyaux reliant les étages de votre niveau doivent être réparés avant que vous receviez d'autres plaintes.

Les tuyaux sont corrects lorsque chaque tuyau après le premier est 1 de plus que le précédent.

Tâche
Étant donné une liste de nombres uniques triés par ordre croissant, renvoyez une nouvelle liste afin que les valeurs s'incrémentent de 1 pour chaque index de la valeur minimale jusqu'à la valeur maximale (toutes deux incluses).

Exemple
Entrée : 1,3,5,6,7,8 Sortie : 1,2,3,4,5,6,7,8

Répartition des solutions

Étape 1 :

Tout d'abord, nous devons trouver la valeur maximale et minimale. Je sais ce que vous pensez, nous pouvons utiliser Math.max et Math.min.

Dans ce scénario, ce n'est pas le cas. C'est une approche valable mais elle est inutile puisque la liste d'entrée a déjà été triée par ordre croissant.

Une fois trié, c'est une garantie que l'élément à l'index 0 (c'est-à-dire les nombres[0]) est la plus petite valeur, identique au dernier élément. Par conséquent, accéder directement aux premier et dernier éléments est plus efficace et plus simple.

Donc, nous trouvons le nombre à l'index 0 et le dernier et initialisons quelques variables pour stocker ces valeurs pour nous :

    let minVal = numbers[0];
    let maxVal = numbers[numbers.length - 1];
Copier après la connexion

Étape 2 :

Après cela, nous créons un tableau vide pour stocker les nouvelles valeurs triées :

    let newNums = [];
Copier après la connexion

Étape 3 :

Parcourez toute la liste

soit i = minVal; initialise le compteur de boucle i à la valeur de minVal. C'est ici que notre boucle va commencer.

je <= maxVal; est la condition de boucle. La boucle continuera à s'exécuter tant que i sera inférieur ou égal à maxVal. Une fois que je dépasse maxVal, la boucle s'arrête.

i++ sert d'incrémenteur. Après chaque itération de notre boucle for, la valeur de i est augmentée de 1

Étape 4 :

Ensuite, nous ajoutons la valeur incrémentée de i à notre tableau vide newNums en utilisant la méthode array.push().

Ensuite, nous renvoyons la valeur finale de notre tableau newNums.

Solution finale

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;
}
Copier après la connexion

J'espère que cet article vous aidera. Si vous aimez l'article, laissez un like et n'hésitez pas à laisser vos préoccupations dans la section commentaires. C'est tout pour aujourd'hui.

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!

source:dev.to
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!