关于栈的算法。
1. 单调栈
应用:对于数列中的每一个数,用单调栈可以求出它的左边离它最近的且比它小或大的数的位置。
我们以左侧最近最小元素为例
1 2 3 4 5 6 7 8 9 10 11 12
| for(int i = 0; i<n; i++) { while(!stack.empty()&&stack.top()>=arr[i]) stack.pop(); if(!stack.empty()) getAnswer; else noOneLessThanMe; stack.push(a[i]); }
|