Medium
132 Pattern — Python
Full explanation · Time O(n) · Space O(n)
# Time: O(n)
# Space: O(n)
class Solution(object):
def find132pattern(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
ak = float("-inf")
stk = []
for i in reversed(xrange(len(nums))):
if nums[i] < ak:
return True
while stk and stk[-1] < nums[i]:
ak = stk.pop()
stk.append(nums[i])
return False
# Time: O(n^2)
# Space: O(1)
class Solution_TLE(object):
def find132pattern(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
for k in xrange(len(nums)):
valid = False
for j in xrange(k):
if nums[j] < nums[k]:
valid = True
elif nums[j] > nums[k]:
if valid:
return True
return False