DEV Community

Prashant Mishra
Prashant Mishra

Posted on • Originally published at practice.geeksforgeeks.org

Kadane's Algorithm

Kadane's Algorithm is one of the algorithms to efficiently find maximum sum of continuous subarray.

Given an array Arr[] of N integers. Find the contiguous sub-array(containing at least one number) which has the maximum sum and return its sum.

Example 1:

Input:
N = 5
Arr[] = {1,2,3,-2,5}
Output:
9
Explanation:
Max subarray sum is 9
of elements (1, 2, 3, -2, 5) which 
is a contiguous subarray.
Enter fullscreen mode Exit fullscreen mode
class Solution{

    // arr: input array
    // n: size of array
    //Function to find the sum of contiguous subarray with maximum sum.
    int maxSubarraySum(int arr[], int n){

        int maxSoFar=0,maxTillHere=0;
        for(int i=0;i<n;i++){
            maxTillHere+=arr[i];
            if(maxTillHere>maxSoFar){
                maxSoFar=maxTillHere;
            }
            if(maxTillHere<0){
                maxTillHere=0;
            }
        }
        return maxSoFar;

    }

}

Enter fullscreen mode Exit fullscreen mode

Top comments (0)