【单调栈】单调栈模板_算法

 

【单调栈】单调栈模板_算法_02

 

【单调栈】单调栈模板_数组元素_03

stack<int>st;
vector<int>vec(数组元素个数);
//△需要变动的地方
△for(i遍历数组)
while (!st.empty()&&△st.top()nums[i])//栈顶元素与x比较  st.pop();
        //如果栈为空,说明没有左面比当前元素更小的元素
if (st.empty()) vec[i]=-1 ;
else  △vec[i]=st.top();
//如果栈不为空,则栈顶就是左面第一个比当前元素更小的元素	
//当前元素进栈
△st.push(nums[i]);
}