오늘 나는 가장 긴 증분 하단 시퀀스를 찾는 데 문제가있었습니다. 그것을 읽은 후, 나는 그것을 Java로 구현하려고 노력했습니다. 나는 여기서 가장 긴 점진적인 하위 시퀀스가 무엇인지 자세히 설명하지 않을 것입니다. Baidu 또는 Google에서 사용할 수 있습니다. 다음은 구현 코드입니다.
참고 :이 코드 섹션에서 구현 된 기능은 다음과 같습니다.
(1) 10 개의 요소가있는 배열을 무작위로 생성 한 다음 가장 긴 증분 하단 시퀀스를 출력 (2) 요소 중 하나로 끝나는 가장 긴 증분 하단의 길이를 출력합니다.
특정 구현 아이디어는 비교적 간단한 주석에 자세히 표시되었으므로 여기에서 반복하지 않을 것입니다.
import java.util.arrays; import java.util.random; public class lis {public static void main (string [] args) {System.out.println ( "랜덤 어레이 생성 ..."); LIS LIS = 새로운 LIS (); int [] oldarray = lis.randomarray (); for (int i = 0; i <oldarray.length; i ++) {system.out.print (OldArray [i]+""); } system.out.println (); System.out.println ( "가장 긴 증분 하단의 길이"); lis.lisget (oldarray); } public int [] randomarray () {random random = new random (); int [] randomarray = new int [10]; for (int i = 0; i <10; i ++) {randomarray [i] = random.nextint (10); } randomArray를 반환합니다. } public void lisget (int [] arrayl) {int [] lislength = new int [arrayl.length]; // 현재 요소를 가장 큰 요소로 기록하는 데 사용되는 가장 긴 증분 시퀀스의 길이 (int i = 0; i ++) {// lislength 초기화 [i] = 1; } int max = 1; for (int i = 1; i <arrayl.length; i ++) {for (int j = 0; } if (max <lislength [i]) {// 현재 가장 긴 증분 시퀀스의 길이와 후속 시퀀스의 마지막 요소의 위치를 얻습니다. max = lislength [i]; }}} system.out.println (max); System.out.println ( "I-th 요소의 끝에서 가장 긴 증분 하단 :"+arrays.tostring (lislength)); // 출력 배열}}위의 것은 편집자가 당신에게 가져 오는 가장 긴 증분 하단 자바의 간단한 구현의 전체 내용입니다. 나는 그것이 당신에게 도움이되기를 바랍니다.