LintCode 132 Pattern
来源:互联网 发布:mac 10.13 桌面日历 编辑:程序博客网 时间:2024/05/21 19:37
Given a sequence of n integers a1, a2, ..., an, a 132
pattern is a subsequence ai, aj, ak such that i
< j
< k
and ai
< ak
< aj
. Design an algorithm that takes a list of n numbers as input and checks whether there is a 132 pattern in the list.
n
will be less than 20,000
.
样例
Given nums = [1, 2, 3, 4]
return False
// There is no 132 pattern in the sequence.
Given nums = [3, 1, 4, 2]
return True
// There is a 132 pattern in the sequence: [1, 4, 2].
蛮力搜索找出 3 个合乎条件的数复杂度是 n 的 3 次方,运行超时。优化为保存一个数之前可能形成 132 模式的几组最大最小数,判断这个数否在这个几组最大最小数之间。
class Solution {public: /** * @param nums a list of n integers * @return true if there is a 132 pattern or false */ bool find132pattern(vector<int>& nums) { // Write your code here if(nums.size() < 3) return false; vector<int> stack; stack.push_back(nums[0]); stack.push_back(nums[1]); for(int i = 0; i < nums.size(); ++i) { int cur = nums[i]; for(int j = 0; j < stack.size(); j += 2) { if(cur > stack[j] && cur < stack[j + 1]) { return true; } if(cur > stack[j + 1]) { stack[j + 1] = cur; } } if(cur < stack[stack.size() - 2]) { stack.push_back(cur); stack.push_back(cur); } } return false; }};
阅读全文
0 0
- lintcode(636)132 Pattern
- LintCode 132 Pattern
- 【LintCode】Pattern(C语言实现)
- 132 Pattern
- 132 pattern
- 132 Pattern
- 132Pattern
- 132 Pattern
- lintcode--132模式
- LintCode
- lintcode--
- lintcode
- LintCode
- Lintcode
- LeetCode 456. 132 Pattern
- 456. 132 Pattern
- Leetcode-456. 132 Pattern
- LeetCode 456. 132 Pattern
- java——java.time包基本使用
- 常用的正则表达式
- SQL SERVER 2008插入某些生僻字时显示是问号
- ListView,GridView的getView多次调用问题
- Gerrit 使用规范
- LintCode 132 Pattern
- MongoDB--架构搭建(主从、副本集)之副本集
- 由DRM引起的ORA-00481错误
- 将C语言宏定义转换成字符串
- 音乐播放器(OC)
- Java集合基础篇(1)-基本介绍
- 微信小程序 获取用户的当前设置
- php中生成标准uuid(guid)的方法
- gcc/g++最简单编译当前目录下所有文件