Educative Grokking : Maximum Sum Subarray of Size K
Maximum Sum Subarray of Size K
Problem Statement : Given an array of positive numbers and a positive number âkâ, find the maximum sum of any contiguous subarray of size âkâ.
Example 1: Input: [2, 1, 5, 1, 3, 2], k=3 Output: 9 Explanation: Subarray with maximum sum is [5, 1, 3].
Example 2: Input: [2, 3, 4, 1, 5], k=2 Output: 7 Explanation: Subarray with maximum sum is [3, 4].
class MaxSumSubArrayOfSizeK {
public static int findMaxSumSubArray(int k, int[] arr) {
int winStart = 0;
int maxSum = 0, winSum = 0;
for(int winEnd=0;winEnd<arr.length;winEnd++) {
if(winEnd - winStart == k) {
maxSum = Math.max(maxSum, winSum);
winSum = winSum - arr[winStart]; // remove the outgoing element from the sum
winStart++;
}
winSum += arr[winEnd];
System.out.println("Now winSum is "+ winSum);
}
return maxSum;
}
}