# C++ Program for Size of The Subarray With Maximum Sum

• Last Updated : 20 Jan, 2022

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.

## C++

 `// C++ program to print length of the largest  ` `// contiguous array sum ` `#include ` `using` `namespace` `std; ` ` `  `int` `maxSubArraySum(``int` `a[], ``int` `size) ` `{ ` `    ``int` `max_so_far = INT_MIN, max_ending_here = 0, ` `       ``start =0, end = 0, s=0; ` ` `  `    ``for` `(``int` `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 program to test maxSubArraySum*/` `int` `main() ` `{ ` `    ``int` `a[] = {-2, -3, 4, -1, -2, 1, 5, -3}; ` `    ``int` `n = ``sizeof``(a)/``sizeof``(a[0]); ` `    ``cout << maxSubArraySum(a, n); ` `    ``return` `0; ` `} `

Output :

`5`

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

My Personal Notes arrow_drop_up
Related Articles