Given an array of integers of size N and a number K, print the maximum value of each subarray of length K in the array
Input Format:
The first line contains two single space separated integers, N and K.
The second line contains N single space separated integers denoting the elements of the array.
Output format:
A single line consisting of N - K + 1 single space separated integers denoting the maximum values of the K-sized subarrays where the subarrays are taken in a left to right fashion starting from the 0th index.
Constraints:
0 <= N <= 5 * (10 ^ 5)
1 <= K <= N
Time Limit: 1 sec
6 3
10 5 2 7 8 7
10 7 8 8
We get the values 10 7 8 8 because:
10 = max(10, 5, 2)
7 = max(5, 2, 7)
8 = max(2, 7, 8)
8 = max(7, 8, 7)
7 3
12 1 78 90 57 89 56
78 90 90 90 89
Is there a way to just check all k-subarrays one by one and find the maximum element for each?
O(N * K) where N is the length of the input array and K is the size of the subarray.
O(1) because the extra space being used (looping variables, maximum element) is constant for any N and K