```
class Solution:
# @param {integer[]} nums
# @param {integer} k
# @return {integer[]}
def maxSlidingWindow(self, nums, k):
if nums == []:
return []
ans,tmp = [], []
for i in range(0, k):
while tmp != [] and nums[i] > nums[tmp[-1]]:
tmp.pop()
tmp.append(i)
for i in range(k, len(nums)):
ans.append(nums[tmp[0]])
while tmp != [] and nums[i] > nums[tmp[-1]]:
tmp.pop()
tmp.append(i)
while tmp != [] and tmp[0] <= i-k:
tmp.pop(0)
ans.append(nums[tmp[0]])
return ans
```