Este artículo describe el algoritmo de distancia de subíndice máximo de cálculo implementado en Java. Compártelo para su referencia, como sigue:
Descripción de la pregunta
Dada una matriz de configuración, encuentre la distancia máxima del subíndice j - i, si a [i] <a [j] e i <j
solución
Complejidad: tres escaneos, cada vez la complejidad o (n)
Algoritmo: {5,3,4,0,1,4,1}
Encuentre la secuencia descendente {5,3,0} a partir del primer elemento
i = 3, j = 6, j inicializado desde el escaneo de cola, i = 3, j = 6, a [i] = 0
Código de implementación
public static int maxindexdistance (int a []) {boolean [] isdes = new Boolean [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] == falso) {i--; } while (j> i && a [j] <= a [i]) {j--; } if ((j - i)> maxdis) {maxdis = j - i; } i--; } return maxdis;}Para obtener más información sobre los algoritmos de Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación de Java DOM", "Resumen de Java Archivo y TIPS de operación de directorio" y "Summary of Java Cache Operation Tips" TIPS ""
Espero que este artículo sea útil para la programación Java de todos.