For the given code:
int findMaxSum(vector<int>& arr, int k) {
int maxSum = 0;
int windowSum = 0;
// Calculate the sum of the first window
for (int i = 0; i < k; i++) {
windowSum += arr[i];
}
maxSum = windowSum;
// Slide the window and update the sum
for (int i = k; i < arr.size(); i++) {
windowSum = windowSum - arr[i - k] + arr[i];
maxSum = max(maxSum, windowSum);
}
return maxSum;
}
#include <stdio.h>
int findMaxSum(int arr[], int k) {
int maxSum = 0;
int windowSum = 0;
int n = sizeof(arr)/sizeof(arr[0]);
// Calculate the sum of the first window
for (int i = 0; i < k; i++) {
windowSum += arr[i];
}
maxSum = windowSum;
// Slide the window and update the sum
for (int i = k; i < n; i++) {
windowSum = windowSum - arr[i - k] + arr[i];
maxSum = (maxSum > windowSum) ? maxSum : windowSum;
}
return maxSum;
}
public class MaxSum {
public static int findMaxSum(int[] arr, int k) {
int maxSum = 0;
int windowSum = 0;
// Calculate the sum of the first window
for (int i = 0; i < k; i++) {
windowSum += arr[i];
}
maxSum = windowSum;
// Slide the window and update the sum
for (int i = k; i < arr.length; i++) {
windowSum = windowSum - arr[i - k] + arr[i];
maxSum = Math.max(maxSum, windowSum);
}
return maxSum;
}
}
def findMaxSum(arr, k):
max_sum = 0
window_sum = sum(arr[:k])
for i in range(k, len(arr)):
window_sum = window_sum - arr[i - k] + arr[i]
max_sum = max(max_sum, window_sum)
return max_sum
function findMaxSum(arr, k) {
let maxSum = 0;
let windowSum = 0;
// Calculate the sum of the first window
for (let i = 0; i < k; i++) {
windowSum += arr[i];
}
maxSum = windowSum;
// Slide the window and update the sum
for (let i = k; i < arr.length; i++) {
windowSum = windowSum - arr[i - k] + arr[i];
maxSum = Math.max(maxSum, windowSum);
}
return maxSum;
}
What is the output of the above code when arr = [2, 1, 5, 1, 3, 2]
and k = 3
?
9
6
10
7
This question is part of this quiz :
Quiz on Sliding window Technique for DSA