이 기사에서는 Java에서 구현 된 계산 최대 첨자 거리 알고리즘에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
질문 설명
쉐이핑 어레이가 주어지면 a [i] <a [j]와 i <j 인 경우 최대 첨자 거리 j -i를 찾으십시오.
해결책
복잡성 : 세 가지 스캔, 매번 복잡성 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; } 나--; } return maxdis;}Java 알고리즘에 대한 자세한 내용은이 사이트에 관심이있는 독자들이 주제를 볼 수 있습니다. "Java 데이터 구조 및 알고리즘 자습서", "Java Operation Dom Node Tips 요약", "Java 파일 및 디렉토리 작동 팁 요약"및 "Java Cache Operation Tips의 요약"을 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.