【单调栈】单调栈模板_进栈

 

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

 

【单调栈】单调栈模板_c++_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]);
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.