Open In App

Javascript Program for Size of The Subarray With Maximum Sum

An array is given, find length of the subarray having maximum sum.

Examples : 



Input :  a[] = {1, -2, 1, 1, -2, 1}
Output : Length of the subarray is 2
Explanation: Subarray with consecutive elements 
and maximum sum will be {1, 1}. So length is 2

Input : ar[] = { -2, -3, 4, -1, -2, 1, 5, -3 }
Output : Length of the subarray is 5
Explanation: Subarray with consecutive elements 
and maximum sum will be {4, -1, -2, 1, 5}. 

This problem is mainly a variation of Largest Sum Contiguous Subarray Problem.
The idea is to update starting index whenever sum ending here becomes less than 0.




<script>
 
// JavaScript program to print length
// of the largest contiguous array sum
function maxSubArraySum(a, size)
{
    let max_so_far = Number.MIN_VALUE,
    max_ending_here = 0,start = 0,
    end = 0, s = 0;
 
    for(let i = 0; i < size; i++)
    {
        max_ending_here += a[i];
 
        if (max_so_far < max_ending_here)
        {
            max_so_far = max_ending_here;
            start = s;
            end = i;
        }
 
        if (max_ending_here < 0)
        {
            max_ending_here = 0;
            s = i + 1;
        }
    }
    return (end - start + 1);
}
 
// Driver code
let a = [ -2, -3, 4, -1, -2, 1, 5, -3 ];
let n = a.length;
 
document.write(maxSubArraySum(a, n));
 
// This code is contributed by splevel62
 
</script>

Output : 

5

 

Time Complexity: O(N) where N is size of the input array. This is because a for loop is executing from 1 to size of the array.

Space Complexity: O(1) as no extra space has been used.

Please refer complete article on Size of The Subarray With Maximum Sum for more details!

Article Tags :