DDSA Solutions

Max Sum Subarray of size K

Time: O(n)
Space: O(1)

Problem Overview

Find maximum sum subarray of exactly size k.

See our study guide for structured GFG and LeetCode practice.

Intuition

Find maximum sum subarray of exactly size k. Sliding window.

Algorithm

  1. 1Compute sum of first k elements. Slide: add next, remove leftmost. Track maximum.

Common Pitfalls

  • Classic fixed-size sliding window. O(n). Initial window sum then slide.
Max Sum Subarray of size K.java
Java
// Approach: Sliding window of fixed size k. Compute sum of first k elements, then
// slide: add new element and remove leftmost element. Track maximum sum seen.
// Time: O(n) Space: O(1)
class Solution {
    public int maxSubarraySum(int[] arr, int k) {
        int n = arr.length;

        int windowSum = 0;
        int maxSum = 0;

        for (int i = 0; i < k; i++)
            windowSum += arr[i];

        maxSum = windowSum;

        for (int i = k; i < n; i++) {
            windowSum += arr[i];
            windowSum -= arr[i - k];
            maxSum = Math.max(maxSum, windowSum);
        }

        return maxSum;
    }
}
Was this solution helpful?