Maximum Sum Subarray of Size K (Fixed Window)

Problem

Find the maximum sum of any contiguous subarray of a fixed size k.

Input:  nums = [2, 1, 5, 1, 3, 2], k = 3
Output: 9   (subarray [5, 1, 3])

Python Solution

def max_sum_subarray_k(nums, k):
    window_sum = sum(nums[:k])
    best = window_sum
    for i in range(k, len(nums)):
        window_sum += nums[i] - nums[i - k]
        best = max(best, window_sum)
    return best

C++ Solution

int maxSumSubarrayK(vector<int>& nums, int k) {
    int windowSum = 0;
    for (int i = 0; i < k; i++) windowSum += nums[i];
    int best = windowSum;
    for (int i = k; i < nums.size(); i++) {
        windowSum += nums[i] - nums[i - k];
        best = max(best, windowSum);
    }
    return best;
}

Java Solution

class Solution {
    public int maxSumSubarrayK(int[] nums, int k) {
        int windowSum = 0;
        for (int i = 0; i < k; i++) windowSum += nums[i];
        int best = windowSum;
        for (int i = k; i < nums.length; i++) {
            windowSum += nums[i] - nums[i - k];
            best = Math.max(best, windowSum);
        }
        return best;
    }
}

Complexity

Time: O(n) — each element enters and leaves the window once. Space: O(1) — only the running window sum is tracked.

Written by Lorens Mishra

Software Engineer Notes Management System Administrator

Discussion

0 comments
Sign in to join the discussion.

No comments yet. Be the first to say something.