Tiene dos variables, current_sum y max_sum . Max_sum almacena la suma máxima en cualquier instante de tiempo.
Inicialmente, deje que current_sum y max_sum sean 0.
Considere un current_vector de elementos para realizar un seguimiento de qué números contribuyen a la current_sum . Considere un final_vector que se actualizará cada vez que se cambie el valor de max_sum . Este vector tiene que borrarse cada vez que inicializa current_sum para que sea 0. current_sum se inicializará a 0 cada vez que encuentre un número negativo.
- ¿Algoritmo de libros o proyecto de código abierto para ser contratado por empresas tecnológicas de San Francisco como Google?
- ¿Cuáles son algunos buenos consejos de entrevista para un puesto en Java?
- ¿Qué tipo de preguntas debo esperar en una entrevista de Yelp New Grad Software Engineer?
- ¿Por qué las empresas tecnológicas no realizan entrevistas de codificación en una computadora portátil o una PC?
- ¿Cuáles son algunos ejemplos de una entrevista semi-técnica para un programador?
Así que considere el ejemplo dado: 0,2,4, -1,8, -7,4,1.
1) Al principio, considere 0> = 0. Agréguelo a la suma_actual . Agregue 0 al current_vector .
2) Considere el siguiente número, 2> = 0. Agréguelo a la suma_actual . Agregue 2 al current_vector .
2) Pasemos al siguiente número 4> = 0. Agréguelo a la suma_actual . Agregue 4 al current_vector .
3) Ahora considere -1 <0. Compruebe si current_sum> max_sum . Si es así, make max_sum = current_sum y make final_vector = current_vector . Ahora final_vector tiene {0,2,4} y max_sum tiene 6. Haga current_sum como 0 , borre current_vector a tamaño 0 .
4) Considere 8> = 0. Agréguelo a la suma_actual . Agregue 8 al current_vector .
5) Siguiente número: -7 <0, Compruebe si current_sum> max_sum . Si es así, make max_sum = current_sum y make final_vector = current_vector . Ahora final_vector tiene {8} y max_sum tiene 8. clear current_vector y current_sum.
6) Siguiente número: 4> = 0. Agréguelo al valor de current_sum . Agregue 4 al current_vector .
7) Siguiente número: 1> = 0. Agréguelo a la suma_actual . Agregue 1 al current_vector .
Al final, después de atravesar todos los elementos, realice una última comprobación si current_sum> max_sum y actualice max_sum y final_vector en consecuencia.
Como puede ver, nuestra respuesta está en max_sum y final_vector .
Espero que esto ayude. 🙂