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.
```