LeetCode每日一题456. 132 模式 (单调栈)
发布日期:2021-05-08 02:34:48 浏览次数:20 分类:精选文章

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

分析

本题的单调栈maxv是一个由小到大的栈,栈顶元素最小。同时设置一个第二小值secv,用于做进一步判断。

stk.png

一个元素nums[i]进来,如果其比栈顶元素还大,则让栈顶元素出栈,直到栈顶元素大于该nums[i]

ins.png

如果在一次循环中nums[i]小于secv,说明:

132.png

如果到最后都没有找到,那么输出false

C++ 代码

class Solution {public:      bool find132pattern(vector
& nums) { int n = nums.size(); if(n<3) return false; stack
maxv; int secv=INT_MIN; //刚开始第二大的数设为最小值 for(int i=n-1;i>=0;i--) { if(nums[i]
maxv.top()) //当前nums[i]比栈顶元素大 { secv=maxv.top(); //更新第二大值 maxv.pop(); //栈顶元素出栈 } maxv.push(nums[i]); //当前元素nums[i]入栈 } return false; }};
上一篇:六、Numpy的使用(详解)
下一篇:五、实例:在波士顿房价数据集上用随机森林回归填补缺失值

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年03月26日 02时07分35秒