'ARR' = [3, 4, -1, 1, 5] and 'K' = 3
Output = [4, 4, 5]
Since the maximum element of the first subarray of length three ([3, 4, -1]) is 4, the maximum element of the second subarray of length three ([4, -1, 1]) is also 4 and the maximum element of the last subarray of length three ([-1, 1, 5]) is 5, so you need to return [4, 4, 5].
The first line of input contains a single integer 'T', representing the number of test cases or queries to be run. Then the 'T' test cases follow.
The first line of each test case contains two positive integers 'N' and 'K' which represent the length of the array and length of the subarray respectively.
The Second line of each test case contains 'N' space-separated integers representing the elements of the array.
For each test case, print 'X' space-separated integer denoting maximum elements for each and every contiguous subarray of size 'K' of the array. Where 'X' is the number of subarray of size 'K' in array 'arr'.
Output for each test case will be printed in a separate line.
You do not need to print anything; it has already been taken care of. Just implement the given function.
1 <= T <= 10
1 <= N <= 10^5
-10^5 <= arr[i] <= 10^5
1 <= K <= N
Time Limit: 1 sec
The idea is to use the deque to hold the index of the maximum element and restrict the deque size to ‘K’. We can use a double-ended queue to keep only the indices of those elements which are useful. The use of deque is to add and drop elements from both ends of a queue. We will slide the window of ‘K’ elements by “dropping” the first element and “adding” the next element after the window to move it forward.
The steps are as follows:
Longest Subarray With Zero Sum
Merge Two Sorted Arrays Without Extra Space
Merge Two Sorted Arrays Without Extra Space
Ninja And The Strictly Increasing Array
Negative To The End
Find Duplicate in Array