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
Libérer: 2024-12-21 07:09:09
original
281 Les gens l'ont consulté

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

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

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

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal