You are given an integer array `arr` of size n. Assume a sliding window of size `num` starting from index 0. In each iteration, the sliding window moves to the right by one position till `n-num`. Write a program to return an array representing the maximum number in all sliding windows.

Problem Note

• The first element of the resultant array is `max (arr[0...num])`, then the second element is `max (arr[1...num+1])` and so on.
• The size of the resultant array will be `n-num+1.`
• You are expected to solve this question in `O(n)` time complexity

Example 1

``````Input: arr[] = [4, 3, 8, 9, 0, 1], num = 3
Output: [8, 9, 9, 9]
Explanation: The window size and the maximum at different iterations are as follows:
max(4, 3, 8) = 8
max(3, 8, 9) = 9
max(8, 9, 0) = 9
max(9, 0, 1) = 9
Hence, we get arr = [8, 9, 9, 9] as output.``````

Example 2

``````Input: arr[] = [9, 8, 6, 4, 3, 1], num = 4
Output: [9, 8, 6]
Explanation: The window size and the maximum at different iterations are as follows:
max(9, 8, 6, 4) = 9
max(8, 6, 4, 3) = 8
max(6, 4, 3, 1) = 6
Hence, we get arr = [9, 8, 6] as output.``````

Example 3

``````Input: arr[] = [1, 2, 3, 4, 10, 6, 9, 8, 7, 5], num = 3
Output: [3, 4, 10, 10, 10, 9, 9, 8]
Explanation: The window size and the maximum at different iterations are as follows:
max(1, 2, 3) = 3
max(2, 3, 4) = 4
max(3, 4, 10) = 10
max(4, 10, 6) = 10
max(10, 6, 9) = 10
max(6, 9, 8) = 9
max(9, 8, 7) = 9
max(8, 7, 5) = 8
Hence, we get arr = [3, 4, 10, 10, 10, 9, 9, 8] as output.``````