Heute habe ich auf ein Problem gestoßen, die längste inkrementelle Untersequenz zu finden. Nachdem ich es gelesen hatte, versuchte ich, es in Java zu implementieren. Ich werde nicht die längste inkrementelle Untersequenz hier näher erläutern. Sie können es auf Baidu oder Google verwenden. Das Folgende ist der Implementierungscode:
HINWEIS: Die in diesem Abschnitt des Code implementierten Funktionen sind
(1) Erzeugen Sie zufällig ein Array mit 10 Elementen und geben dann die längste inkrementelle Subsequence aus (2) die Länge der längsten inkrementellen Subquemie aus, die mit einem der Elemente als Länge endet
Die spezifischen Implementierungsideen wurden in den Kommentaren ausführlich gezeigt, die relativ einfach sind, sodass ich sie hier nicht wiederholen werde.
Import Java.util.Arrays; Import Java.util.random; öffentliche Klasse lis {public static void main (String [] args) {System.out.println ("Generierung eines zufälligen Array ..."); Lis lis = new lis (); int [] Oldarray = lis.randomarray (); für (int i = 0; i <Oldarray.length; i ++) {System.out.print (OldArray [i]+""); } System.out.println (); System.out.println ("Die Länge der längsten inkrementellen Subsequenz ist"); Lis.lisget (Oldarray); } public int [] randomArray () {random Random = new Random (); int [] randomArray = new int [10]; für (int i = 0; i <10; i ++) {randomArray [i] = random.nextint (10); } randomarray zurückgeben; } public void lisget (int [] arrayl) {int [] lislength = new int [arrayl.length]; // Die Länge der längsten inkrementellen Sequenz, mit der das aktuelle Element als das größte Element für (int i = 0; i <arrayl.Length; i ++) aufgezeichnet wird, initialisieren lislength [i] = 1; } int max = 1; für (int i = 1; i <arrayl.length; i ++) {für (int j = 0; j <i; j ++) {if (arrayl [j] <arrayl [i] && (lislength [j] +1)> lislength [i]) {lislength [i] = lislength [j] +1; } if (max <lislength [i]) {// Erhalten Sie die Länge der aktuellen längsten inkrementellen Sequenz und die Position des letzten Elements der Subsequenz max = lisleng [i]; }}} System.out.println (max); System.out.println ("Die längste inkrementelle Subsequenz am Ende des I-ten Elements:"+arrays.tostring (lislength)); // Array ausgeben}}Das obige ist der gesamte Inhalt der einfachen Implementierung der längsten inkrementellen Subsequence Java, die der Editor Ihnen bringt. Ich hoffe, es wird Ihnen hilfreich sein und wulin.com mehr ~ unterstützen ~