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;
}
};