一.题目:
在一个序列中找到132的模式,就是第一个数小于第二第三个数,且第三个数小于第二个数。
二.解题思路:
技巧性好强的一道题,实在想不出来...
参考别人的博客代码如下:
class Solution(object):
def find132pattern(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
if len(nums) <=2:
return False
third = float('-inf')
stack = [] #stack中存储的都是大于third的元素
for i in range(len(nums)-1, -1, -1):
if nums[i] < third:
return True
else:
while stack and stack[-1] < nums[i]:
third = stack.pop()
stack.append(nums[i])
return False