DEV Community

Prashant Mishra
Prashant Mishra

Posted on • Edited 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.
problem
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

TC: O(n)O(n)
SC: O(1)O(1)

class Solution {
    public int maxSubArray(int[] nums) {
        int max = Integer.MIN_VALUE;
        int currentSum = 0;
        for(int i =0;i<nums.length;i++){
            currentSum+=nums[i];
            if(currentSum > max){
                max = currentSum;
            }
            if(currentSum <0){
                currentSum = 0;
            }
        }
        return max;
    }
}

Enter fullscreen mode Exit fullscreen mode

Top comments (0)