Skip to main content
PreparationZone Logo
PreparationZone
Back to Fundamentals

Fundamentals · Medium · Free

Explain Kadane's algorithm for maximum subarray sum.

FresherFundamentalsData Structures & Algorithms
Model answer

Kadane's algorithm

Track best ending here vs start fresh at current index—O(n) max subarray sum.

java
int maxSubArray(int[] a) {
  int best = a[0], cur = a[0];
  for (int i = 1; i < a.length; i++) {
    cur = Math.max(a[i], cur + a[i]);
    best = Math.max(best, cur);
  }
  return best;
}
Explain intuition: either extend previous subarray or restart at i.