# 239. Sliding Window Maximum

## Hard

***

You are given an array of integers `nums`, there is a sliding window of size `k` which is moving from the very left of the array to the very right. You can only see the `k` numbers in the window. Each time the sliding window moves right by one position.

Return *the max sliding window*.

&#x20;

**Example 1:**

<pre><code>Input: nums = [1,3,-1,-3,5,3,6,7], k = 3
<strong>Output:
</strong> [3,3,5,5,6,7]
<strong>Explanation:
</strong> 
Window position                Max
---------------               -----
[1  3  -1] -3  5  3  6  7       3
 1 [3  -1  -3] 5  3  6  7       3
 1  3 [-1  -3  5] 3  6  7       5
 1  3  -1 [-3  5  3] 6  7       5
 1  3  -1  -3 [5  3  6] 7       6
 1  3  -1  -3  5 [3  6  7]      7
</code></pre>

**Example 2:**

<pre><code>Input: nums = [1], k = 1
<strong>Output:
</strong> [1]
</code></pre>

&#x20;

**Constraints:**

* `1 <= nums.length <= 105`
* `-104 <= nums[i] <= 104`
* `1 <= k <= nums.length`
