博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode] 456. 132 Pattern (Medium)
阅读量:4364 次
发布时间:2019-06-07

本文共 1157 字,大约阅读时间需要 3 分钟。

对一个三个元素以上的数组,如果存在1-3-2模式的组合,则返回true。

1-3-2模式就是值的排序是i<k<j但是下标排序是i<j<k。

解法一:

硬解,利用一个变量存储是否找到了较大值和较小值,因为是1-3-2,所以从后往前遍历才能找到较当前值更大和更小的值。

Runtime: 648 ms, faster than 12.76% of C++ online submissions for 132 Pattern.

class Solution{public:  bool find132pattern(vector
&nums) { if (nums.size() < 3) return false; int a = 0; int times = 0; for (int i = nums.size()-1; i > 1; --i) { a = nums[i]; times=0; for (int j = i - 1; j >=0; --j) { if (nums[j] > a && times == 0) times++; if (nums[j] < a && times == 1) times++; } if(times==2) return true; } return false; }};

解法二:

利用栈,这里涉及到一个,看一下有助于理解。

class Solution{public:  bool find132pattern(vector
&nums) { stack
s; int prev = INT_MIN; for (int i = nums.size() - 1; i >= 0; i--) { while (!s.empty() && s.top() < nums[i]) { if (prev > s.top()) return true; prev = s.top(); s.pop(); } s.push(nums[i]); } return !s.empty() && prev > s.top(); }};

 

转载于:https://www.cnblogs.com/ruoh3kou/p/10026655.html

你可能感兴趣的文章
2018-2019-1 20165337 《信息安全系统设计基础》第六周学习
查看>>
C++函数参数传递方式(Effective C++之20, 21)
查看>>
在Html页面中调用ajax代码
查看>>
Contest2178 - 2019-4-18 高一noip基础知识点 测试7 题解版
查看>>
JAVA:23种设计模式详解(转)
查看>>
Spring AOP实战例子与springmvc整合不起效果的解决办法
查看>>
<mvc:annotation-driven />注解意义
查看>>
深度剖析Dubbo源码
查看>>
20135333苏正生——信息安全系统设计基础第八周学习总结
查看>>
编写简单的脚本使用工具
查看>>
[APIO2010]特别行动队
查看>>
bzoj1833数字计数
查看>>
LeetCode "Maximum Product Subarray"
查看>>
JMeter
查看>>
laravel 处理自定错误页面,如404,500,501,502,503,504等等
查看>>
JQuery 常用
查看>>
Mysql 升级到 5.6 后插入语句时间字段报错:Incorrect datetime value: '' for column 'createtime'...
查看>>
Combination Sum II
查看>>
简单数论(二)----BSGS算法总结
查看>>
winform 控件随页面大小进行自适应
查看>>