判断在一组数列中按从左到右的顺序,是否存在第3个元素小于第2个元素且大于第1个元素(132)
在discuss中的简便方法
class Solution {
public:
bool find132pattern(vector<int>& nums) {
stack<int> stk;//存放可能的第3个元素
int s2 = INT_MIN;//第2个元素
for (int i = nums.size() - 1; i >= 0; --i) {
if (nums[i] < s2)
return true;
//符合第2,3个元素的比较条件
while (!stk.empty() && stk.top() < nums[i]) {
s2 = stk.top();
stk.pop();
}
stk.push(nums[i]);
}
return false;
}
};