132 Pattern
Given a sequence of n integers a1, a2, …, an, a 132 pattern is a subsequence ai, aj, ak such that i < j < k and ai < ak < aj. Design an algorithm that takes a list of n numbers as input and checks whether there is a 132 pattern in the list.
Note: n will be less than 15,000.
Example
Input: [1, 2, 3, 4]
Output: False
Explanation: There is no 132 pattern in the sequence.
Solution
class Solution:
def find132pattern(self, nums: List[int]) -> bool:
stack, temp = [], float("-inf")
for num in nums[::-1]:
if num<temp:
return True
while stack and stack[-1]<num:
temp = stack.pop()
stack.append(num)
return False