Given an array of n integers nums,
a 132 pattern is a subsequence of three integers nums[i],
nums[j] and nums[k] such that i < j < k and nums[i] < nums[k] < nums[j].
Return true if there is a 132 pattern in nums, otherwise, return false.
정수 배열이 주어집니다.
index는 i < j < k 인데, 배열 nums에 대해 nums[i] < nums[k] < nums[j] 인 패턴이 존재하는지를 리턴하세요.
예를 들자면 [1, 3, 2] 가 있습니다.
Input: nums = [1,2,3,4]
Output: false
Explanation: 위와 같은 패턴이 존재 하지 않음.
class Solution:
def find132pattern(self, nums: List[int]) -> bool:
stck: List[int] = []
m: int = -(10 ** 9 + 1)
for index in range(len(nums) - 1, -1, -1):
if nums[index] < m:
return True
while stck and stck[-1] < nums[index]:
m = stck[-1]
stck.pop()
stck.append(nums[index])
return False
stck: List[int] = []
m: int = -(10 ** 9 + 1)