456. 132模式

给定一个整数序列:a1, a2, …, an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj。设计一个算法,当给定有 n 个数字的序列时,验证这个序列中是否含有132模式的子序列。

注意:n 的值小于15000。

示例1:

输入: [1, 2, 3, 4]

输出: False

解释: 序列中不存在132模式的子序列。

示例 2:

输入: [3, 1, 4, 2]

输出: True

解释: 序列中有 1 个132模式的子序列: [1, 4, 2].

示例 3:

输入: [-1, 3, 2, 0]

输出: True

解释: 序列中有 3 个132模式的的子序列: [-1, 3, 2], [-1, 3, 0] 和 [-1, 2, 0].

class Solution {
public boolean find132pattern(int[] nums) {
int n = nums.length;
int last = Integer.MIN_VALUE; // 132中的2
Stack<Integer> sta = new Stack<>();// 用来存储132中的3
if(nums.length < 3)
return false;
for(int i=n-1; i>=0; i--){ if(nums[i] < last) // 若出现132中的1则返回正确值
return true; // 若当前值大于或等于2则更新2(2为栈中小于当前值的最大元素)
while(!sta.isEmpty() && sta.peek() < nums[i]){
last = sta.pop();
} // 将当前值压入栈中
sta.push(nums[i]);
}
return false;
}
}

最新文章

  1. inux如何查看当前占用CPU或内存最多的进程
  2. 反编译工具Reflector ILSpy
  3. 【扩展欧几里得】BAPC2014 I Interesting Integers (Codeforces GYM 100526)
  4. oracle查询blob类型
  5. Go Revel - Parameters(参数绑定)
  6. mysql 初始化时root无密码
  7. idea中Springcloud同时运行多个模块、微服务
  8. eclipse 搭建maven项目
  9. visual studio 2017下载地址
  10. python 运用numpy库与matplotlib库绘制数据图
  11. GIT学习笔记——常用命令
  12. 微信分享config:ok 但自定义内容无效
  13. 源码分析之CountDownLatch
  14. Machine Learning - Andrew Ng - Coursera
  15. js学习之--Bootstrap Modals(模态框)
  16. Hyberledger-Fabric 1.00 RPC学习(1)
  17. [重磅]Deep Forest,非神经网络的深度模型,周志华老师最新之作,三十分钟理解!
  18. simulink pi的方法产生锁相环
  19. Spring高级话题-@Enable***注解的工作原理
  20. 自学系列--git的基础简介

热门文章

  1. ARM-Linux Gcc 交叉编译环境搭建
  2. JDBC02 加载JDBC驱动 建立连接
  3. IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(三)
  4. layui 关闭弹出层方法
  5. java - &gt;IO流_缓冲流(高效流)
  6. webpack的proxytable的配置
  7. 我的第一篇博客-学习书写markdown
  8. Postman学习之Postman简介
  9. ql的python学习之路-day15
  10. 垃圾收集器与内存分配策略——深入理解Java虚拟机 笔记二