Examen julio 2024 ej 4-c

Examen julio 2024 ej 4-c

de Julieta Rosas Cibic -
Número de respuestas: 1

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.

k

En respuesta a Julieta Rosas Cibic

Re: Examen julio 2024 ej 4-c

de Ewelina Bakala -

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!