问题:给出一个数组a,问是否有这样的子序列,满足i<j<k,a[i]<a[k]<a[j]
思路:1、首先计算前缀的最小值。
2、从后往前遍历,当元素大于前缀最小值时。看栈顶元素是否有大于前缀最小值,如果没有,出栈直到栈为空或者栈顶元素大于前缀最小值。如果栈顶元素小于当前元素,说明是存在这样的序列。否则不存在。
具体代码参考:
https://github.com/wuli2496/OJ/tree/master/LeetCode/456%20132%20Pattern
问题:给出一个数组a,问是否有这样的子序列,满足i<j<k,a[i]<a[k]<a[j]
思路:1、首先计算前缀的最小值。
2、从后往前遍历,当元素大于前缀最小值时。看栈顶元素是否有大于前缀最小值,如果没有,出栈直到栈为空或者栈顶元素大于前缀最小值。如果栈顶元素小于当前元素,说明是存在这样的序列。否则不存在。
具体代码参考:
https://github.com/wuli2496/OJ/tree/master/LeetCode/456%20132%20Pattern