Leetcode 0239 sliding-window-maximum

1 min

我们通过维护一个双端队列来解决这道题目。

大体流程为:

  1. 初始化滑动窗口:对于滑动窗口中的每个元素,如果小于队尾元素或队为空,则进入队列;如果大于队尾元素,则不断弹出队尾,直到小于队尾元素或队为空,然后进入队列。
  2. 初始化 ans 数组,加入当前队头
  3. 开始遍历整个数组:
    1. 先清理队头超出滑动窗口的元素
    2. 然后将新元素加入队,按照初始化滑动窗口的算法
    3. 将队头加入 ans 数组
  4. 输出 ans 数组