一.题目:
在一个序列中找到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
本文介绍了一种在序列中查找特定模式“132”的算法实现,即找到第一个数小于第二和第三个数,但第三个数又小于第二个数的情况。通过逆序遍历序列并使用栈来高效解决此问题。
578

被折叠的 条评论
为什么被折叠?



