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)