He estado tratando de entender este algoritmo durante las últimas dos horas, pero parece que no puede obtenerlo. ¿Alguien puede explicarlo de manera fácil de entender?Explicar el algoritmo para resolver el problema de la 'subsecuencia creciente más larga'
function lis_length(a)
n := a.length
q := new Array(n)
for k from 0 to n:
max := 0;
for j from 0 to k, if a[k] > a[j]:
if q[j] > max, then set max = q[j].
q[k] := max + 1;
max := 0
for i from 0 to n:
if q[i] > max, then set max = q[i].
return max;
Recorre el código con una matriz de diez elementos en lápiz y papel. O regrese a la documentación de la función. –
^@RaymondChen Esto es tan inútil. Sería mejor simplemente no publicar nada que dar una sugerencia como esta. Reduce la calidad de las respuestas en este sitio, que no hace más que dañar a la comunidad y, por extensión, a ti mismo. – guribe94