[leetcode] 456. 132 Pattern (Medium)
2024-09-01 02:17:34
对一个三个元素以上的数组,如果存在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();
}
};
最新文章
- find命令
- 1018MYSQL数据迁移到SQLSERVER
- js-定时任务setInterval,setTimeout,clearInterval,clearTimeout
- ListView删除选中的多项目
- select&;pselect/poll&;ppoll/epoll
- 【贪心】Vijos P1615 旅行
- MIUI6&;7桌面角标开源代码简介
- 函数alv下的颜色设置
- leetcode 之 Permutation Sequence
- poj 3273 Monthly Expense (二分)
- [译]Java中的继承 VS 组合
- Linux中的挂载和卸载
- 1-LPC1778建立工程
- [LeetCode] Detect Capital 检测大写格式
- Linux下实现普通用户免密码登录【超详细】
- SpringBoot-目录及说明
- Linux查看当前目录下所有子目录是否包含某个文件
- oracle数据库,恢复到24小时内的数据
- React组件State提升(译)
- lua脚本在游戏中的应用
热门文章
- Windows XP 每次开机都自动检测硬盘 解决办法(可以用HDDRegenerate修复坏道)
- OpenGL与Directx的区别
- 判断当前进程是否以管理员权限运行(AllocateAndInitializeSid后,用CheckTokenMembership与AdministratorsGroup进行比较,和Delphi的那个例子还有点不一样)
- Awesome Go (http://awesome-go.com/)
- springmvc拦截请求
- HTTP请求GET和POST的区别
- Spring Boot配置篇(基于Spring Boot 2.0系列)
- spark streaming 接收kafka消息之三 -- kafka broker 如何处理 fetch 请求
- SQL Server Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现 -2(虚拟IP视角)
- 微服务SpringCloud之服务注册与发现