单调栈 & 单调队列
Posted xxrll
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单调栈 & 单调队列相关的知识,希望对你有一定的参考价值。
一、
二、单调队列
1 inline int FindMax() 2 3 int ans=-0x3f3f3f3f; 4 Q.push_back(0); //Q放置的是下标 5 for(int i=1;i<=n;i++) 6 7 while(!Q.empty()&&Q.front()<i-m)Q.pop_front(); //判断是否超出左边界 8 ans=max(ans,s[i]-s[Q.front()]); // 不断更新答案 9 while(!Q.empty()&&s[Q.back()]>=s[i])Q.pop_back(); 10 //比右边大的话,减掉一定小于等于零,并不优于i,所以不能要这一块,只能减这块之前的 11 Q.push_back(i); 12 13 return ans; 14
以上是关于单调栈 & 单调队列的主要内容,如果未能解决你的问题,请参考以下文章