单调队列
设置一个双向队列,按顺序将数组的下标push到队列尾,保证下标的升序,每次都检查队列头的下标是否超出了窗口,超出则pop队列头。
另外push新的下标前,要将之前下标中存储的数比自己小的pop掉。这样就能够保证所有下标对应的数是降序的。每次论队列头就是当前窗口中最大的数。
C++ Code
1 | class Solution(object): |
单调队列
设置一个双向队列,按顺序将数组的下标push到队列尾,保证下标的升序,每次都检查队列头的下标是否超出了窗口,超出则pop队列头。
另外push新的下标前,要将之前下标中存储的数比自己小的pop掉。这样就能够保证所有下标对应的数是降序的。每次论队列头就是当前窗口中最大的数。
C++ Code
1 | class Solution(object): |