馃敟 EJEMPLOS, SUMA M脕XIMA EN SUBARREGLO

Algoritmo para encontrar la suma m谩xima en un subarreglo

Dado un arreglo de enteros y un n煤mero, escribe una funci贸n llamada maximaSumaEnSubarreglo, la cual encuentre la suma m谩xima en un subarreglo con la longitud del n煤mero enviado a la funci贸n.

El arreglo debe consistir de n煤meros consecutivos de elementos en el arreglo original.

Ejemplos:

([100,200,300,400],2) => 700
([-3,4,0,-2,6,-1],2) => 5
([2,3],3) => null
function sumaMaximaEnSubarreglo(a, b) {
    // retorna false si el arreglo es menor a lo requerido
    if (a.length < b) {
        return null;
    }

    // suma maxima
    let sumaMaxima = 0;

    // toma la suma de la primera porci贸n del arreglo
    for (let i = 0; i < b; i++) {
        sumaMaxima += a[i];
    }

    // suma previa
    let sumaPrevia = sumaMaxima;

    // recorre el resto del arreglo
    for (let i = b; i < a.length; i++) {
        // calcula la nueva suma
        let nuevaSuma = sumaPrevia + a[i] - a[i - b];

        // actualiza la suma maxima
        if (nuevaSuma > sumaMaxima) {
            sumaMaxima = nuevaSuma;
        }

        // actualiza la suma previa
        sumaPrevia = nuevaSuma;
    }

    // retorna la suma m谩xima
    return sumaMaxima;
}