Skip to main content

Command Palette

Search for a command to run...

maxsumsubarray

Published
1 min readView as Markdown
public class MaxSumSubarraySlidingWindow {
    public static void main(String[] args) {
        // Default test case
        int[] arr = {100, 200, 300, 400};
        int k = 2;

        int maxSum = findMaxSumSubarray(arr, k);
        System.out.println("Maximum sum of subarray of size " + k + " is: " + maxSum);
    }

    public static int findMaxSumSubarray(int[] arr, int k) {
        int n = arr.length;
        if (n < k) {
            System.out.println("Invalid: Window size is larger than array size.");
            return -1;
        }

        // Step 1: Find sum of first window
        int windowSum = 0;
        for (int i = 0; i < k; i++) {
            windowSum += arr[i];
        }

        int maxSum = windowSum;

        // Step 2: Slide the window
        for (int i = k; i < n; i++) {
            windowSum += arr[i] - arr[i - k]; // add new, remove old
            maxSum = Math.max(maxSum, windowSum);
        }

        return maxSum;
    }
}

More from this blog

Amit singh's blog

235 posts