l=0;
r=0;
for (int i=1;i<=n;i++)//枚举窗口的尾巴
{
while(l<r && q[l]<i-k+1)l++;//踢队首已退休的节点
while(l<r && a[i]<a[q[r-1]])r--;//踢队尾没有希望的节点
q[r++]=i;
if(i>=k) printf("%d ",a[q[l]]);
}
单调队列-滑动窗口
猜你喜欢
转载自www.cnblogs.com/yangfengmz/p/9284310.html
今日推荐
周排行