Kadane's Algorithm - 450DSA Cracker Solution

Table of contents

Kadane's Algorithm

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.

Example 2:

Input:
N = 4
Arr[] = {-1,-2,-3,-4}
Output:
-1
Explanation:
Max subarray sum is -1 
of element (-1)

Code

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

        // Your code here
        long long int sum = 0 ;
        long long int j =  INT_MIN;
        int i =0;
        while(i<n)
        {
            sum += arr[i];
            if (j < sum )
                j = sum ;
            i++;
            if (sum < 0 )
                sum =0 ;
        }
        return j;
    }
};