Sliding Window Maximum

numsArray
[1, 3, -1, -3, 5, 3, 6, 7]
kInteger
3
1def maxSlidingWindow(nums, k):
2    deque = []  # stores indices
3    result = []
4
5    for i in range(len(nums)):
6        # Remove elements outside window
7        if deque and deque[0] <= i - k:
8            deque.pop(0)
9
10        # Remove smaller elements from back
11        while deque and nums[deque[-1]] <= nums[i]:
12            deque.pop()
13
14        # Add current index
15        deque.append(i)
16
17        # Add to result if window complete
18        if i >= k - 1:
19            result.append(nums[deque[0]])
20
21    return result
0 / 31
nums01132-13-345536677dequeresult