classSolution{public:boolfind132pattern(vector<int>&nums){stack<int>stack;// a decreasing stackintak=INT_MIN;// We want to find a seq ai < ak < aj.for(inti=nums.size()-1;i>=0;--i){// If ai < ak, we're done because ai must < aj.if(nums[i]<ak)returntrue;while(!stack.empty()&&stack.top()<nums[i])ak=stack.top(),stack.pop();stack.push(nums[i]);// `nums[i]` is a candidate of aj.}returnfalse;}};
1 2 3 4 5 6 7 8 91011121314151617
classSolution{publicbooleanfind132pattern(int[]nums){Deque<Integer>stack=newArrayDeque<>();// a decreasing stackintak=Integer.MIN_VALUE;// We want to find a seq ai < ak < aj.for(inti=nums.length-1;i>=0;--i){// ai < ak, we're done because ai must also smaller than ajif(nums[i]<ak)returntrue;while(!stack.isEmpty()&&stack.peek()<nums[i])ak=stack.pop();stack.push(nums[i]);// `nums[i]` is a candidate of aj.}returnfalse;}}