Maximum slice problem

by Igor Cuckovic

JavaScript

var A = [-10, -5, -8, -4, 5];

function solution(A) {
    var maxEnding = 0;
    var maxSlice = 0;


    // if all negative
    var max = A[0];
    for (var n = 0; n < A.length; n += 1) {
        if (A[n] > max) {
            max = A[n];
        }
    }

    if (max < 0) {
        return max;
    }

    // if some positive
    for (var i = 0; i < A.length; i += 1) {
        maxEnding = Math.max(0, maxEnding + A[i]);
        maxSlice = Math.max(maxSlice, maxEnding);
        //console.log(A[i], maxEnding, maxSlice)
    }

    return maxSlice;
}

console.log(solution(A));