# Largest sum contiguous subarray

### Problem:

From Wikipedia :
In computer science, the Largest sum contiguous subarray is the task of finding the contiguous subarray within a one-dimensional array of numbers which has the largest sum. For example, for the sequence of values −2, 1, −3, 4, −1, 2, 1, −5, 4; the contiguous subarray with the largest sum is 4, −1, 2, 1, with sum 6.

### Solution :

There are multiple solution to solve this problem:

#### Solution 1:

Use two loops and try each combination of array elements to find maximum sum.
Time complexity : O(N^2)

#### Solution 2:

I have discussed Kadane ‘s algorithm in previous post. You can refer it.
Time complexity : O(N)

#### Solution 3:

Dynamic Programming:
You can use dynamic programming to solve this problem.
Lets say array be arr[] and maximum sum upto index i is maxSum(i)
Logic which can be used for dynamic programming:

So it can be define as
Max sum at index i is maximum of (max sum upto i-1 + current element , current element)
Java code  :

Time complexity : O(N)

### Java Program to find largest sum contiguous subarray:

When you run above program, you will get below output:

#### Find the local minima in array 