Leetcode.456.132模式
题目难度:中等
题目原题链接
思路:
- 132模式,中间的那个数字3,也指最大的那个数,利用贪心算法维护1是3左边最小的数字,2是3右边的数字,比3小但比1大的数字;
- 从左到右遍历一次,遍历的数字nums[j]也就是132模式中的3;
- 根据贪心思想,让1是3左边最小的元素,然后暴力求解nums[j+1…N-1]中找到132模式中的2即可;
- Python代码;
class Solution(object):
def find132pattern(self,nums):
N = len(nums)
nums_s = nums[0]
for j in range(1,N):
for k in range(N-1,j,-1):
if nums_s <nums[k] and nums[k] < nums[j]:
return True
nums_s = min(nums_s,nums[j])
return False