Hola! tengo una duda con la solución de este ejercicio. No termino de entender la linea que dice
if f > i ini = [ini, i];
fin = [fin, f];
No me queda claro en qué caso f es mayor que i, si en el primer while adjudicamos f=i.
Hola! tengo una duda con la solución de este ejercicio. No termino de entender la linea que dice
if f > i ini = [ini, i];
fin = [fin, f];
No me queda claro en qué caso f es mayor que i, si en el primer while adjudicamos f=i.
Hola Julieta,
la idea de esta solución es empezar a recorrer desde el primer elemento (i=1), asumiendo que la secuencia empieza en v(1) y termina en v(1) (f=i). La variable i se usa para guardar el índice del comienzo de secuencia y f para guardar el índice del fin de la secuencia. El segundo while nos sirve para avanzar el f hasta que se termine el vector (f>=n) o hasta encontrar fin de la secuencia (v(f)+1 != v(f+1)). Si salimos del segundo while, tenemos que ver si salimos porque pudimos encontrar una secuencia (el f es más grande que i). En el caso de encontrar una secuencia, guardamos el i en el vector ini y el f en el vector fin. Después, sí o sí subimos el i (i=f+1) para seguir buscando secuencias en la posición f+1. Si antes hemos encontrado una secuencia, buscaremos en el primer elemento después de la secuencia encontrada (f+1). Si no encontramos una secuencia el f no cambió (es igual a i gracias al primer while), así que nos movemos a la posición siguiente (f+1 que es igual a i+1) para ver si ahí empieza una nueva secuencia.
Espero que me haya explicado, cualquier duda, avisá!
Saludos!