#include <stdio.h> void sliding_window_sum(int arr[], int n, int k) { // Your logic here // Approach 1 /* int sub_sum = 0; for(int i = 0; i < n-k+1; i++){ for(int j = 0; j < k; j++){ sub_sum += arr[i+j]; } printf("%d ", sub_sum); sub_sum = 0; } */ // Approach 2: O(n) int sub_sum = 0; for(int i = 0; i < k; i++){ sub_sum += arr[i]; } printf("%d ", sub_sum); for(int i = k; i < n; i++){ sub_sum += arr[i] - arr[i-k]; printf("%d ", sub_sum); } } 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; }
Test Cases
Test Results
Input
5 3 1 2 3 4 5
Expected Output
6 9 12