456. 132 Pattern
https://leetcode.com/problems/132-pattern/
Python
Brute Force (Timelimit Exceed)
- Time: O(n^3)
- Space: O(1)
class Solution:
def find132pattern(self, nums: List[int]) -> bool:
n = len(nums)
if n < 3:
return False
for i in range(n-1):
for j in range(i+1, n-1):
if nums[i] > nums[j]:
continue
for k in range(j+1, n):
if nums[i] < nums[k] and nums[k] < nums[j]:
return True
return False
Brute Force - Remeber Min i (Timelimit Exceed)
- Time: O(n^2)
- Space: O(1)
import math
class Solution:
def find132pattern(self, nums: List[int]) -> bool:
n = len(nums)
if n < 3:
return False
min_i = math.inf
for j in range(n-1):
min_i = min(min_i, nums[j])
for k in range(j+1, n):
if min_i < nums[k] < nums[j]:
return True
return False