Hoy me encontré con un problema de encontrar la subsecuencia incremental más larga. Después de leerlo, intenté implementarlo en Java. No explicaré cuál es la subsecuencia incremental más larga aquí. Puede usarlo en Baidu o Google. El siguiente es el código de implementación:
Nota: Las funciones implementadas en esta sección del código son
(1) Genere aleatoriamente una matriz con 10 elementos, y luego obtenga su posterior subsecuencia incremental (2) de salida de la longitud de la subsecuencia incremental más larga que termina con uno de los elementos como la longitud
Las ideas de implementación específicas se han mostrado en detalle en los comentarios, que son relativamente simples, por lo que no las repetiré aquí.
import java.util.arrays; import java.util.random; public class lis {public static void main (string [] args) {System.out.println ("Generando una matriz aleatoria ..."); Lis lis = new lis (); int [] OldArray = lis.RandomArray (); for (int i = 0; i <oldArray.length; i ++) {System.out.print (OldArray [i]+""); } System.out.println (); System.out.println ("La longitud de la posterior posterior incremental más larga es"); lis.lisget (OldArray); } public int [] RandomArray () {Random Random = new Random (); int [] randomArray = new int [10]; para (int i = 0; i <10; i ++) {randomArray [i] = random.nextInt (10); } return randomArray; } public void lisget (int [] arrayl) {int [] lislength = new int [arrayl.length]; // La longitud de la secuencia incremental más larga utilizada para registrar el elemento actual como el elemento más grande para (int i = 0; i <grayl.length; i ++) {// inicializar lislenggth [i] = 1; } int max = 1; for (int i = 1; i <arrayl.length; i ++) {for (int j = 0; j <i; j ++) {if (arrayl [j] <arrerayl [i] && (lislength [j] +1)> lislength [i]) {lislength [i] = lislength [j] +1; } if (max <lislength [i]) {// Obtenga la longitud de la secuencia incremental más larga actual y la posición del último elemento de la subsecuencia max = lislength [i]; }}} System.out.println (max); System.out.println ("La posterior subsecuencia incremental más larga al final del elemento i-th:"+matrizs.tostring (lislength)); // matriz de salida}}Lo anterior es todo el contenido de la implementación simple del Java sub-Sub-Sub-Sequencia más largo que el editor le trae. Espero que sea útil para usted y apoye a Wulin.com más ~