https://www.youtube.com/watch?v=iJjBJ_5-4zk

// algoritmo de kadane
var maxSubArray = function(nums) {
    //  se toma como base el primer valor del array, asi permitimos resultados negativos
    let max_actual = nums[0]; // contiene el valor maximo al que se puede llegar en cada iteracion
    let res = nums[0]; // guarda el mayor valor alcansado en sumas consecutivas
    // iteracion en array;̰
    for(let i=1; i<nums.length; i++){
        // suma = curr + suma //caso de la mayor suma en 2 numeros consecutivos
            // suma = curr + suma // cualquier longitud, pero el resultado no deberia ser menor a 0
            // if(suma < 0) suma = 0
            // toma el numero mayor entre current y current+
            const curr = nums[i] // contiene el current value en la iteracion
        const sum = curr + max_actual // contiene el valor de la suma anterior + la current
        max_actual = Math.max(curr, sum) // verifica la suma actual y la suma de la iteracion anterior, retorna la mayor
        res = Math.max(max_actual, res) // verifica si la maxima suma actual es mayor a la maxima suma hasta ahora
        // console.log(res+'', max_actual )
    }
    return res;
};
maxSubArray([-2,1,-3,4,-1,2,1,-5,4])