В этой статье описывается максимальный алгоритм дистанции расчета, реализованный на Java. Поделитесь этим для вашей ссылки, следующим образом:
Описание вопроса
Учитывая массив формирования, найдите максимальное расстояние подписания J - I, если [i] <a [j] и I <j
решение
Сложность: три сканирования, каждый раз, когда сложность o (n)
Алгоритм: {5,3,4,0,1,4,1}
Найдите нисходящую последовательность {5,3,0}, начиная с первого элемента
i = 3, j = 6, j инициализирован из сканирования хвоста, i = 3, j = 6, a [i] = 0
Реализовать код
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; } i--; } return maxdis;}Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.