C/C++ Program for Largest Sum Contiguous Subarray?


An array of integers is given. We have to find sum of all elements which are contiguous. Whose sum is largest, that will be sent as output.

Using dynamic programming we will store the maximum sum up to current term. It will help to find sum for contiguous elements in the array.

Input: An array of integers. {-2, -3, 4, -1, -2, 1, 5, -3}
Output: Maximum Sum of the Subarray is : 7

Algorithm

maxSum(array, n)

Input − The main array, the size of the array.

Output − maximum sum.

Begin
   tempMax := array[0]
   currentMax = tempMax
   for i := 1 to n-1, do
      currentMax = maximum of (array[i] and currentMax+array[i])
      tempMax = maximum of (currentMax and tempMax)
   done
   return tempMax
End

Example

 Live Demo

#include<iostream>
using namespace std;
int maxSum( int arr[], int n) {
   int tempMax = arr[0];
   int currentMax = tempMax;
   for (int i = 1; i < n; i++ ) { //find the max value
      currentMax = max(arr[i], currentMax+arr[i]);
      tempMax = max(tempMax, currentMax);
   }
   return tempMax;
}
int main() {
   int arr[] = {-2, -3, 4, -1, -2, 1, 5, -3};
   int n = 8;
   cout << "Maximum Sum of the Sub-array is: "<< maxSum( arr, n );
}

Output

Maximum Sum of the Sub-array is: 7

Updated on: 30-Jul-2019

323 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements