双端队列的使用

from collections import deque
class Solution:
    def maxInWindows(self , num: List[int], size: int) -> List[int]:
        # write code here
        res = []
        len_num = len(num)
        dq = deque()
        for i in range(len_num):
            if i <= size - 1:
                while dq and num[dq[-1]] < num[i]:
                    dq.pop() 
                dq.append(i)
                if i == size - 1:
                    res.append(num[dq[0]])
            else:
                # 当对尾下标对应的数组值小于新加入的对象时,删除队尾
                while dq and (num[dq[-1]] < num[i]):
                    dq.pop()
                # 当对头下标超出窗口的范围时,删除对头
                while dq and (dq[0] < i - size + 1):
                    dq.popleft()
                print(dq)
                dq.append(i)
                res.append(num[dq[0]])
        return res