Cet article décrit l'algorithme de distance maximal des indices de calcul implémenté en Java. Partagez-le pour votre référence, comme suit:
Description de la question
Étant donné un tableau de mise en forme, trouvez la distance maximale de l'indice j-i, si a [i] <a [j] et i <j
solution
Complexité: trois scans, à chaque fois la complexité O (n)
Algorithme: {5,3,4,0,1,4,1}
Trouvez la séquence descendante {5,3,0} à partir du premier élément
i = 3, j = 6, j initialisé à partir du scan de queue, i = 3, j = 6, a [i] = 0
Implémenter le code
public static int maxindexDistance (int a []) {boolean [] isdes = new booléen [a.Length]; int min = a [0]; isdes [0] = true; for (int i = 0; i <a.length; i ++) {if (a [i] <min) {isdes [i] = true; min = a [i]; }} int maxdis = 0; int i = a.length - 1; int j = a.Length - 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; } je--; } return maxdis;}Pour plus d'informations sur les algorithmes Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Structure de données Java et tutoriel d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.