-
题目链接 https://leetcode-cn.com/problems/132-pattern/submissions/
-
题目描述
- 给定一个整数序列:a1, a2, ..., an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj。设计一个算法,当给定有 n 个数字的序列时,验证这个序列中是否含有132模式的子序列。
-
输入: [1, 2, 3, 4] 输出: False
-
输入: [3, 1, 4, 2] 输出: True
-
解题思路
- 从右往左遍历数组,维护一个严格递减栈,并维护一个变量存储次大值。
- 对于当前数字i, 若 i 小于次大值那么就直接返回true,就在栈顶元素小于i的条件下出栈,然后入栈。
-
代码
- python
class Solution: def find132pattern(self, nums): s = [] left = -float('inf') for i in nums[::-1]: if i < left: return True while s and i > s[-1]: left = s.pop() s.append(i) return False
- python
leetcode 456. 132 模式
猜你喜欢
转载自blog.csdn.net/qq_38043440/article/details/89284785
今日推荐
周排行