Quiz on Sliding window Technique for DSA: Question 5

Last Updated :
Discuss
Comments

For the given code:

C++
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;
}
C
#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;
}
Java
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;
    }
}
Python
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
JavaScript
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

Tags:
Share your thoughts in the comments