Fundamentals · Medium · Free
Explain Kadane's algorithm for maximum subarray sum.
FresherFundamentalsData Structures & Algorithms
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.