Maison  >  Article  >  interface Web  >  Solution : problème de canalisation Lario et Muigi

Solution : problème de canalisation Lario et Muigi

PHPz
PHPzoriginal
2024-09-04 16:38:101001parcourir

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];

Étape 2 :

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

    let newNums = [];

É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;
}

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!

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