class Solution {
public:
    bool find132pattern(vector<int>& nums) {
        int len = nums.size(), lo = INT_MIN;
        stack<int> st;
        for(int i = len - 1; i >= 0; --i)
        {
            int curr = nums[i];
            if(curr < lo)return true;

            while(st.size() && st.top() < curr)
            {
                lo = st.top();
                st.pop();
            }
            st.push(curr);
        }
        return false;
    }
};