这道题的目标是判断是否存在三个下标 i<j<k,满足:
nums[i]<nums[k]<nums[j]
这就是经典的 132 模式判断问题。
一个直接想法是枚举三个位置,但时间复杂度是 O(n3),显然无法通过 n≤2×105 的数据范围。
给定一个长度为 n 的整数数组 nums,请判断数组中是否存在满足下列条件的三个下标 i,j,k:
如果存在这样的三元组,则称数组中存在一个 132 模式。
请输出是否存在 132 模式。
第一行输入一个整数n,表示数组长度。
第二行输入n个整数,表示数组nums。
如果数组中存在 132 模式,输出 true;否则输出 false。
4
1 2 3 4
false
数组中不存在满足条件的三元组。
4
3 1 4 2
true
存在一组满足条件的下标,对应的三个数为 (1,4,2),满足: (1<2<4)
因此存在 132 模式。
4
-1 3 2 0
true
数组中存在 132 模式,例如:
(−1,3,2) (−1,3,0) (−1,2,0)
(1≤n≤2×105) (−109≤nums[i]≤109)