import collections
#
解题思路: htt****************************liding-window-maximum/description/
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param num int整型一维数组
# @param size int整型
# @return int整型一维数组
#
class Solution:
def maxInWindows(self , num: List[int], size: int) -> List[int]:
# write code here
if size==0 or len(num)==0:
return []
# 1.定义一个队列存下标
dq=collections.deque()
n=len(num)
res=[]
for i ,number in enumerate(num):
while dq and num[dq[-1]]<number:
dq.pop() # 移除下标
# 添加到队列
dq.append(i) # 加入下标
if i-size==dq[0]:
dq.popleft()
if i>=size-1:
#print(i,dq)
res.append(num[dq[0]])
return res