# Largest Sum Contiguous Subarray

Dynamic ProgrammingData StructureAlgorithms

#### Artificial Intelligence : The Future Of Programming

15 Lectures 54 mins

#### Beyond Basic Programming - Intermediate Python

Most Popular

36 Lectures 3 hours

#### C Programming from scratch- Master C Programming

Best Seller

60 Lectures 8 hours

An array of integers is given. We have to find the 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 the sum for contiguous elements in the array.

## Input and Output

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

#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 16-Jun-2020 15:40:34