# 456. 132 模式
# 题目
给定一个整数序列:a1, a2, ..., an
,一个 132
模式的子序列 ai, aj, ak
被定义为:当 i < j < k
时,ai < ak < aj
。设计一个算法,当给定有 n
个数字的序列时,验证这个序列中是否含有 132
模式的子序列。
注意:n 的值小于 15000。
# 题解
# 枚举
/**
* @param {number[]} nums
* @return {boolean}
*/
var find132pattern = function(nums) {
let n = nums.length;
if (n < 3) return false;
let l = nums[0];
let right = nums.slice(2, n);
for (let i = 1; i < n - 1; i++) {
if (l < nums[i]) {
for (let r of right) {
if (r > l && r < nums[i]) return true;
}
}
l = Math.min(l, nums[i]);
right.splice(0, 1);
}
return false;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20