class Solution:
def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:
if k == 1:
return nums
n = len(nums)
deq = deque()
def adjust(num, last):
if last is not None and last == deq[0]:
deq.popleft()
while deq and deq[-1] < num:
deq.pop()
deq.append(num)
res = []
for i, num in enumerate(nums):
if i < k - 1:
adjust(num, None)
else:
adjust(num, nums[i - k])
res.append(deq[0])
return res