Heim > Web-Frontend > js-Tutorial > Teilen von CodeWars-Herausforderungslösungen: Am wenigsten größer, von Basic bis Aris

Teilen von CodeWars-Herausforderungslösungen: Am wenigsten größer, von Basic bis Aris

Susan Sarandon
Freigeben: 2024-12-21 07:09:09
Original
281 Leute haben es durchsucht

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

Lernen Sie von der CodeWars Challenge: Least Larger

Hallo, Freunde! Dieses Mal möchte ich über die Least Larger-Herausforderung von CodeWars berichten. Diese Herausforderung ist wirklich spannend, weil sie Logik und systematisches Denken schult und eine Vorstellung davon vermittelt, wie dieses Konzept in der realen Welt nützlich sein kann. Komm, lass es uns gemeinsam besprechen!


Was sind die Herausforderungen?

Wir erhalten also eine Reihe von Zahlen und einen bestimmten Index. Unsere Aufgabe besteht darin, die kleinste Zahl zu finden, die größer als das Element an diesem Index ist, und dann den Index zurückzugeben. Wenn es keine übereinstimmenden Zahlen gibt, müssen wir -1 zurückgeben.

Beispiel:

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

Index: 0 (Referenznummer ist 4)

Das Ergebnis ist 3, da die kleinste Zahl größer als 4 5 ist, was am Index 3 liegt.
Warum kann es 3 sein?
Das Array beginnt bei 0
also:
4: Index 0
1: Index 1
3: Index 2
5: Index 3
6: Index 4


Die Lösung, die ich geschaffen habe

Um diese Herausforderung zu lösen, habe ich eine Funktion namens leastLarger erstellt. Hier ist der 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
}
Nach dem Login kopieren
Nach dem Login kopieren

Wie funktioniert es?

  1. Initialisierung

    • Für den Vergleich habe ich als Anfangswert „Kleiner“ auf „Unendlich“ gesetzt.
    • Das Ergebnis wird auf -1 gesetzt, falls keine zufriedenstellenden Elemente vorhanden sind.
  2. Array-Iteration

    • Ich überprüfe jedes Element im Array.
    • Es müssen zwei Bedingungen erfüllt sein:
      1. Das Element ist größer als das Referenzelement (a[i]).
      2. Das Element ist kleiner als im vorherigen Vergleich (kleiner).
    • Wenn beide Bedingungen erfüllt sind, aktualisiere ich kleiner und speichere den Elementindex im Ergebnis.
  3. Ergebnisse zurückgeben

    • Wenn es ein zufriedenstellendes Element gibt, gibt die Funktion ihren Index zurück.
    • Wenn keine vorhanden ist, ist das Ergebnis immer noch -1.

Anwendungsbeispiel

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

Erklärung:

  • Das Referenzelement ist 4 (bei Index 0).
  • Elemente größer als 4 sind [5, 6].
  • Von diesen Elementen ist das kleinste 5 und seine Position befindet sich bei Index 3.

Vorablösung: Prägnant in einer Zeile

Für diejenigen unter Ihnen, die einen eher „reinen JavaScript“-Ansatz bevorzugen, können wir diese Lösung mithilfe integrierter Methoden wie filter, Math.min und findIndex in einer Codezeile schreiben:

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
}
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Code macht dasselbe, aber in einem funktionaleren und prägnanteren Stil. Ideal für Situationen, in denen Sie eine schnelle Lösung ohne zu viele zusätzliche Variablen schreiben möchten.


Fallstudien aus der Praxis

Eine Funktion wie diese ist in verschiedenen realen Situationen tatsächlich sehr relevant. Einige Beispiele:

  1. Ticketbuchungssystem

    • In Ticketsystemen müssen wir oft den niedrigsten Sitzplatzpreis finden, der über einem bestimmten Preis liegt (z. B. um den nächsten Sitzplatz zu besetzen).
  2. Aufgabenplanung

    • Beim Erstellen eines Zeitplans können wir nach der nächstgelegenen Zeit suchen, die größer als eine bestimmte Zeit ist, beispielsweise um Termine für Besprechungen oder die nächste Aufgabe zuzuweisen.
  3. Bestandsverwaltung

    • Wenn Sie in einem Lager nach einem Lagerort mit der geringsten Kapazität suchen müssen, der noch ausreicht, um bestimmte Artikel zu lagern.

Diese Herausforderung sieht einfach aus, aber als ich sie ausprobierte, wurde mir klar, dass eine gute Logik sehr wichtig ist. Was mir an dieser Herausforderung gefällt, ist, wie relevant dieses Konzept für die Anwendung in der realen Welt ist.

Oh ja, wenn Freunde andere Möglichkeiten haben, diese Herausforderung zu meistern, zögern Sie nicht, sie in der Kommentarspalte zu teilen, OK! Wer weiß, vielleicht lernen wir von den unterschiedlichen Ansätzen des anderen. Hoffentlich ist dieses Teilen nützlich und viel Spaß beim Codieren! ?

Das obige ist der detaillierte Inhalt vonTeilen von CodeWars-Herausforderungslösungen: Am wenigsten größer, von Basic bis Aris. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage