Skip to main content
PreparationZone Logo
PreparationZone
Back to Fundamentals

Fundamentals · Medium · Free

Solve maximum sum subarray of size k using sliding window.

FresherFundamentalsData Structures & Algorithms
Model answer

Fixed-size sliding window

java
int maxSumK(int[] a, int k) {
  int sum = 0;
  for (int i = 0; i < k; i++) sum += a[i];
  int best = sum;
  for (int i = k; i < a.length; i++) {
    sum += a[i] - a[i - k];
    best = Math.max(best, sum);
  }
  return best;
}

Slide window: add entering element, subtract leaving—O(n).

Variable window: expand right until invalid, shrink left.