Dieser Artikel beschreibt den in Java implementierten Berechnungsmaximal -Abstands -Distanzalgorithmus. Teilen Sie es für Ihre Referenz wie folgt weiter:
Frage Beschreibung
Finden Sie bei einem Formungsarray den maximalen Index -Abstand j - i, wenn a [i] <a [j] und i <j
Lösung
Komplexität: Drei Scans, jedes Mal die Komplexität O (n)
Algorithmus: {5,3,4,0,1,4,1}
Finden Sie die absteigende Sequenz {5,3,0} ab dem ersten Element ab
i = 3, j = 6, j aus dem Schwanzscan initialisiert, i = 3, j = 6, a [i] = 0
Code implementieren
public static int maxIndexDistance (int a []) {boolean [] isdes = new boolean [A.Length]; int min = a [0]; isdes [0] = true; für (int i = 0; i <A.Length; i ++) {if (a [i] <min) {isdes [i] = true; min = a [i]; }} int maxdis = 0; int i = a.länge - 1; int j = a.länge - 1; System.out.println (Arrays.toString (ISDES)); while (i> = 0) {while (isdes [i] == false) {i--; } while (j> i && a [j] <= a [i]) {j-; } if ((j - i)> maxdis) {maxdis = j - i; } ich--; } return maxdis;}Für weitere Informationen zu Java -Algorithmen können Leser, die an dieser Website interessiert sind, die Themen "Java -Datenstruktur und Algorithmus -Tutorial", "Zusammenfassung der Java -Operation DOM -Knoten -Tipps", "Zusammenfassung der Java -Datei- und Verzeichnisoperationstipps" und "Zusammenfassung der Java -Cache -Operation Tipps" anzeigen
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.