'''
Description:
Autor: Au3C2
Date: 2021-03-24 14:39:09
LastEditors: Au3C2
LastEditTime: 2021-03-24 15:05:21
'''
class Solution(object):
def find132pattern(self, nums):
N = len(nums)
leftMin = [float("inf")] * N
for i in range(1, N):
leftMin[i] = min(leftMin[i - 1], nums[i - 1])
stack = []
for j in range(N - 1, -1, -1):
numsk = float("-inf")
while stack and stack[-1] < nums[j]:
numsk = stack.pop()
if leftMin[j] < numsk:
return True
stack.append(nums[j])
return False
# 栈,中等
# https://leetcode-cn.com/problems/132-pattern/
# https://leetcode-cn.com/problems/132-pattern/solution/fu-xue-ming-zhu-cong-bao-li-qiu-jie-dao-eg78f/