Letzter Einfügeindex in sortiertem Array

Beginner

This tutorial is from open-source community. Access the source code

Einführung

In diesem Lab werden wir das Konzept des Findens des letzten Einfügeindex in einem sortierten Array erkunden. Wir werden lernen, wie man überprüft, ob das Array in absteigender Reihenfolge sortiert ist, und wie man Array.prototype.reverse() und Array.prototype.findIndex() verwendet, um den passenden letzten Index zu finden, an dem das Element eingefügt werden sollte. Am Ende dieses Labs werden Sie ein besseres Verständnis dafür haben, wie man die Sortierreihenfolge eines Arrays beibehält.

Beschreibung des letzten Einfügeindex in einem sortierten Array

Um den höchsten Index zu finden, an dem ein Wert in ein Array eingefügt werden sollte, um seine Sortierreihenfolge beizubehalten, folgen Sie diesen Schritten:

  • Überprüfen Sie zunächst grob, ob das Array in absteigender Reihenfolge sortiert ist.
  • Verwenden Sie dann Array.prototype.reverse() und Array.prototype.findIndex(), um den passenden letzten Index zu finden, an dem das Element eingefügt werden sollte.

Hier ist der Code für die Funktion:

const sortedLastIndex = (arr, n) => {
  const isDescending = arr[0] > arr[arr.length - 1];
  const index = arr
    .reverse()
    .findIndex((el) => (isDescending ? n <= el : n >= el));
  return index === -1 ? 0 : arr.length - index;
};

Und hier ist ein Beispiel dafür, wie die Funktion verwendet wird:

sortedLastIndex([10, 20, 30, 30, 40], 30); // 4

Um mit der Programmierung zu beginnen, öffnen Sie das Terminal/SSH und geben Sie node ein.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Letzter Einfügeindex in sortiertem Array" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.