首页 > 其他 > 详细

单调栈板子

时间:2019-12-08 14:08:24      阅读:79      评论:0      收藏:0      [点我收藏+]
stack<int> st;
//此处一般需要给数组最后添加结束标志符,具体下面例题会有详细讲解
for (遍历这个数组)
{
    if (栈空 || 栈顶元素大于等于当前比较元素)
    {
        入栈;
    }
    else
    {
        while (栈不为空 && 栈顶元素小于当前元素)
        {
            栈顶元素出栈;
            更新结果;
        }
        当前数据入栈;
    }
}

或者

stack<LL>st;
        for(LL j=1;j<p;j++)
        {
            if(st.empty())
            {
                l[j]=0;
                st.push(j);
            }
            else//维护栈中数据单调递减
            {
                while(!st.empty()&&b[st.top()]<b[j]) st.pop();
                if(st.empty()) l[j]=0;
                else l[j]=st.top();
                st.push(j);
            }
        }

 

单调栈板子

原文:https://www.cnblogs.com/caijiaming/p/12005280.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!