对一个三个元素以上的数组,如果存在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<int> &nums)
{
if (nums.size() < )
return false;
int a = ;
int times = ;
for (int i = nums.size()-; i > ; --i)
{
a = nums[i];
times=;
for (int j = i - ; j >=; --j)
{
if (nums[j] > a && times == )
times++;
if (nums[j] < a && times == )
times++;
}
if(times==)
return true;
}
return false;
}
};

解法二:

利用栈,这里涉及到一个栈排序的知识,看一下有助于理解。

class Solution
{
public:
bool find132pattern(vector<int> &nums)
{
stack<int> s;
int prev = INT_MIN; for (int i = nums.size() - ; i >= ; 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();
}
};

最新文章

  1. find命令
  2. 1018MYSQL数据迁移到SQLSERVER
  3. js-定时任务setInterval,setTimeout,clearInterval,clearTimeout
  4. ListView删除选中的多项目
  5. select&amp;pselect/poll&amp;ppoll/epoll
  6. 【贪心】Vijos P1615 旅行
  7. MIUI6&amp;7桌面角标开源代码简介
  8. 函数alv下的颜色设置
  9. leetcode 之 Permutation Sequence
  10. poj 3273 Monthly Expense (二分)
  11. [译]Java中的继承 VS 组合
  12. Linux中的挂载和卸载
  13. 1-LPC1778建立工程
  14. [LeetCode] Detect Capital 检测大写格式
  15. Linux下实现普通用户免密码登录【超详细】
  16. SpringBoot-目录及说明
  17. Linux查看当前目录下所有子目录是否包含某个文件
  18. oracle数据库,恢复到24小时内的数据
  19. React组件State提升(译)
  20. lua脚本在游戏中的应用

热门文章

  1. Windows XP 每次开机都自动检测硬盘 解决办法(可以用HDDRegenerate修复坏道)
  2. OpenGL与Directx的区别
  3. 判断当前进程是否以管理员权限运行(AllocateAndInitializeSid后,用CheckTokenMembership与AdministratorsGroup进行比较,和Delphi的那个例子还有点不一样)
  4. Awesome Go (http://awesome-go.com/)
  5. springmvc拦截请求
  6. HTTP请求GET和POST的区别
  7. Spring Boot配置篇(基于Spring Boot 2.0系列)
  8. spark streaming 接收kafka消息之三 -- kafka broker 如何处理 fetch 请求
  9. SQL Server Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现 -2(虚拟IP视角)
  10. 微服务SpringCloud之服务注册与发现