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;
}

VPN

  • Ir a la oferta de NordVPN

Moda

Accesorios