Maison >interface Web >js tutoriel >Partager les solutions du défi CodeWars : le moins grand, de Basic à Aris

Partager les solutions du défi CodeWars : le moins grand, de Basic à Aris

Susan Sarandon
Susan Sarandonoriginal
2024-12-21 07:09:09358parcourir

Sharing Solusi Tantangan CodeWars: Least Larger, dari Dasar hingga aris

Apprenez du défi CodeWars : le moins grand

Bonjour les amis ! Cette fois, je veux parler du défi Least Larger de CodeWars. Ce défi est vraiment passionnant car il entraîne la logique et la pensée systématique, tout en donnant une idée de la façon dont ce concept peut être utile dans le monde réel. Allez, discutons-en ensemble !


Quels sont les défis ?

Ainsi, on nous donne un tableau de nombres et un certain index. Notre tâche est de trouver le plus petit nombre supérieur à l'élément à cet index, puis de renvoyer l'index. S'il n'y a pas de numéros correspondants, nous devons renvoyer -1.

Exemple :

Tableau : [4, 1, 3, 5, 6]

Indice : 0 (le numéro de référence est 4)

Le résultat est 3, car le plus petit nombre supérieur à 4 est 5, qui est à l'indice 3.
pourquoi peut-il être 3 ?
Le tableau commence à 0
donc :
4 : indice 0
1 : indice 1
3 : indice 2
5 : indice 3
6 : indice 4


La solution que j'ai créée

Pour résoudre ce défi, j'ai créé une fonction appelée lessLarger. Voici le code :

function leastLarger(a, i) {
  let smaller = Infinity; // Nilai pembanding awal
  let result = -1;        // Default hasil kalau nggak ada elemen yang memenuhi

  for (let index = 0; index < a.length; index++) {
    if (a[index] > a[i] && a[index] < smaller) {
      smaller = a[index]; // Update nilai terkecil yang lebih besar
      result = index;     // Simpan indeks elemen
    }
  }

  return result; // Kembalikan hasil
}

Comment ça marche ?

  1. Initialisation

    • J'ai défini plus petit sur Infinity comme valeur initiale de comparaison.
    • le résultat est défini sur -1 au cas où il n'y aurait aucun élément satisfaisant.
  2. Itération du tableau

    • Je vérifie chaque élément du tableau.
    • Il y a deux conditions qui doivent être remplies :
      1. L'élément est supérieur à l'élément de référence (a[i]).
      2. L'élément est plus petit que la comparaison précédente (plus petit).
    • Si les deux conditions sont remplies, je mets à jour plus petit et enregistre l'index de l'élément dans le résultat.
  3. Résultats de retour

    • S'il y a un élément satisfaisant, la fonction renvoie son index.
    • S'il n'y en a pas, le résultat est toujours -1.

Exemple d'utilisation

console.log(leastLarger([4, 1, 3, 5, 6], 0)); // Output: 3

Explication :

  • L'élément de référence est 4 (à l'index 0).
  • Les éléments supérieurs à 4 sont [5, 6].
  • Parmi ces éléments, le plus petit est 5 et sa position est à l'indice 3.

Solution avancée : concise en 1 ligne

Pour ceux d'entre vous qui aiment une approche plus « JavaScript uniquement », nous pouvons écrire cette solution sur une seule ligne de code en utilisant des méthodes intégrées telles que filter, Math.min et findIndex :

function leastLarger(a, i) {
  let smaller = Infinity; // Nilai pembanding awal
  let result = -1;        // Default hasil kalau nggak ada elemen yang memenuhi

  for (let index = 0; index < a.length; index++) {
    if (a[index] > a[i] && a[index] < smaller) {
      smaller = a[index]; // Update nilai terkecil yang lebih besar
      result = index;     // Simpan indeks elemen
    }
  }

  return result; // Kembalikan hasil
}

Ce code fait la même chose, mais dans un style plus fonctionnel et concis. Idéal pour les situations où vous souhaitez écrire une solution rapide sans trop de variables supplémentaires.


Études de cas du monde réel

Une fonction comme celle-ci est en fait tout à fait pertinente dans diverses situations réelles. Quelques exemples :

  1. Système de réservation de billets

    • Dans les systèmes de billetterie, nous devons souvent trouver le prix de siège le plus bas qui est supérieur à un certain prix (par exemple, pour occuper le siège suivant).
  2. Planification des tâches

    • Lors de l'élaboration d'un planning, nous pouvons rechercher l'heure la plus proche qui est supérieure à une certaine heure, par exemple pour attribuer des créneaux de réunion ou la prochaine tâche.
  3. Gestion des stocks

    • Dans un entrepôt, si vous devez rechercher un emplacement de stockage avec la plus petite capacité qui soit encore suffisante pour stocker certains articles.

Ce défi semble simple, mais lorsque je l'ai essayé, j'ai réalisé qu'une logique soignée est très importante. Ce que j'aime dans ce défi, c'est la pertinence de ce concept à appliquer dans le monde réel.

Oh oui, si des amis ont d'autres façons de réaliser ce défi, n'hésitez pas à les partager dans la colonne des commentaires, OK ! Qui sait, nous pourrions apprendre des différentes approches de chacun. J'espère que ce partage sera utile et bon codage ! ?

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
Article précédent:Notations du grand OArticle suivant:Notations du grand O