力扣456.132模式
-
单调栈
- 维护单调递减的栈
- 用k维护‘2’,每次出栈就更新**(保证栈中元素始终大于k)**
- 当出现nums[i] < k时 说明存在‘1’
- 又因为栈中存在‘3’
- 因此就存在132模式序列
-
class Solution { public: bool find132pattern(vector<int>& nums) { stack<int> st; int n = nums.size(),k = INT_MIN; for(int i=n-1;i>=0;i--) { if(nums[i] < k) return true; while(!st.empty() && nums[i] > st.top()) { k = max(k,st.top()); st.pop(); } st.emplace(nums[i]); } return false; } };