Sliding Window Sum

Code

#include <stdio.h>

void sliding_window_sum(int arr[], int n, int k) {

    int slidingSum[n-k+1] = {0};

    for(int i = 0; i < k; i++){
        slidingSum[0] += arr[i];
    }

    if(n == k) {
        printf("%d", slidingSum[0]);
        return;
    }

    for(int i = 1; i <= (n - k); i++)
        slidingSum[i] = slidingSum[i-1] + arr[k+i-1] - arr[i-1];

    for(int i=0;i<n-k+1;i++)
        printf("%d ",slidingSum[i]);

}

int main() {
    int n, k, arr[100];
    scanf("%d %d", &n, &k);
    for (int i = 0; i < n; i++) scanf("%d", &arr[i]);

    sliding_window_sum(arr, n, k);
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

5 3 1 2 3 4 5

Expected Output

6 9 12