Buenos dias,
Yo pense el ejercicio parecido a la solucion alternativa. Pero no me dio.
Cuando corro la sulucion alternativa: ( yo parcial lo sustituto por aux y v por vect)
function suma= max_sec_crec(vect)
suma = 0;
creciente = false;
aux = 0;
n = length(vect)
for i = 1:n
if ~creciente
if (i ~= n) && (vect(i+1) > vect(i))
aux = vect(i)
creciente = true
endif
else
aux = aux + vect(i)
if (i == n) || (vect(i) >= vect(i+1))
if aux > suma
suma = aux
endif
creciente = false
aux = 0
endif
endif
endfor
endfunction
Lo que no entiendo es cuando i=3 porque a suma le asigna 14 que es el valor de aux si yo tego dos if
if (i == n) || (vect(i) >= vect(i+1))
if aux > suma
suma = aux
endif
Para llegar a suma=aux y el primero no es verdadero. ?
Esto es lo que aprace en consola haciendo debugging:
max_sec_crec(vect)
n = 11
aux = 2
creciente = 1
aux = 7
aux = 14
suma = 14 este es el que no entiendo.
creciente = 0
aux = 0
aux = 2
creciente = 1
aux = 9
aux = 18
suma = 18
creciente = 0
aux = 0
aux = 1
creciente = 1
aux = 3
aux = 8
aux = 14
creciente = 0
aux = 0
ans = 18
Muchas gracias