Este artigo descreve o algoritmo máximo de distância do subscrito de cálculo implementado em Java. Compartilhe -o para sua referência, como segue:
Descrição da pergunta
Dada uma matriz de modelagem, encontre a distância máxima do subscrito j -i, se um [i] <a [j] e eu <j
solução
Complexidade: três varreduras, cada vez que a complexidade o (n)
Algoritmo: {5,3,4,0,1,4,1}}
Encontre a sequência descendente {5,3,0} a partir do primeiro elemento
i = 3, j = 6, J inicializado a partir da varredura da cauda, i = 3, j = 6, a [i] = 0
Implementar código
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] == false) {i--; } while (j> i && a [j] <= a [i]) {j--; } if ((j - i)> maxdis) {maxdis = j - i; } eu--; } retornar maxDis;}Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.