题目:https://leetcode-cn.com/problems/132-pattern/ 思路: 如果某个数左边比它小的数的最小值,小于它右边小于它的某个数(不必找最大值),那么这个序列就符合132模式的定义。如下图三点所示。 于是有解法1(峰谷法): 解法1的基本思路就是先找到一对“1”和 ...
分类:
其他好文 时间:
2019-04-06 16:49:56
阅读次数:
132
单调栈的好题 "题目链接" 题目是求最大矩形面积 1.BF思路 可以想到最后大矩形的上边界一定是某个小矩形的顶 那么我们就枚举每一个小矩形, 将其顶作为限制条件尽可能地向两边扩展 复杂度$O(n^2)$ 2.单调栈做法 如图,黑色为最终要求的矩形 我们可以维护一个单调递增栈 如上图:(从黄色的矩形( ...
分类:
其他好文 时间:
2018-12-15 12:02:02
阅读次数:
128
单调栈: 定义: 定义: 栈内的元素,按照某种方式排列下(单调递增或者单调递减),如果新入栈的元素破坏了单调性,就弹出栈内元素,直至满足单调性。 作用:单调栈可以找到从左/右遍历第一个比它大/小的元素的位置。时间复杂度为O(N); 实现方式:(以维护单调递增栈为例) 作用:单调栈可以找到从左/右遍历 ...
分类:
其他好文 时间:
2018-09-25 23:03:58
阅读次数:
186
1、单调栈 单调栈是指一个栈内部的元素具有严格单调性的一种数据结构,分为单调递增栈和单调递减栈。 其具有以下两个性质: 1,满足栈底到栈顶的元素具有严格单调性。 2,满足栈的先进后出特性,越靠近栈顶的元素越后出栈。 单调队列同理,其严格单调性与单调栈相同。 但该队列中的元素满足先进先出特性,越靠近队 ...
分类:
其他好文 时间:
2018-03-02 23:11:21
阅读次数:
721
Feel Good Bill is developing a new mathematical theory for human emotions. His recent investigations are dedicated to studying how good or bad days in ...
分类:
其他好文 时间:
2017-07-23 14:26:20
阅读次数:
183
又是一道构思巧妙的题,暴力求解复杂度太高,通过构造一个递增栈,O(n)就能解决问题,其中的过程值得细细体会。 int largestRect(vector<int> &height) { stack<int> s;//定义一个单调递增栈 height.push_back(0);//定义单调递增栈的最 ...
分类:
其他好文 时间:
2016-05-28 15:39:29
阅读次数:
151
对于此类问题:对于元素nums[i],找出往左/右走第一个比它小/大的数字我们常常用递增栈/递减栈实现。递增栈实现第一个比它小递减栈实现第一个比它大Example: 2 1 5 6 2 3stack: 保证栈是递增的顺序,因此每个数进来之前先删除栈里比它大的数字。 因此每个数,当它被...
分类:
其他好文 时间:
2015-10-25 06:12:33
阅读次数:
117
题意:紧贴x轴有一些相互挨着的矩形,给定每个矩形的长宽,问他们可以形成的最大矩形是多少。Sample Input31 23 41 233 41 23 4-1Sample Output1214 1 #include 2 #include 3 #include 4 5 using namespa...
分类:
其他好文 时间:
2015-08-05 12:25:32
阅读次数:
132
单调栈单调栈顾名思义就是让栈中的元素是单调的,要么递增,要么递减。同样它也满足栈的性质,先进后出。
单调递增栈,则从栈顶到栈底的元素是严格递增的
单调递减栈,则从栈顶到栈底的元素是严格递减的
练习题单调栈
练习题
POJ3250
POJ2796
BZOJ1113
HDU1506
POJ2559
JDFZ2997POJ3250POJ3250传送门
对于每一个牛来说,能看到的数目为向右数身高比它小的个...
分类:
其他好文 时间:
2015-07-30 21:28:13
阅读次数:
208
单调栈是栈中的元素从栈顶到栈底单调递增或递减。单调栈只能从栈顶部添加或者删除元素,以单调递增栈为例,元素从栈顶到栈底逐渐递增,假设当前元素为e,在入栈时,从栈顶往下找,如果栈顶元素小于当前元素e,则弹出栈顶元素,直到栈顶元素小于等于该元素e,然后将e入栈;出栈时,直接弹出栈顶元素,即可得到栈中当.....
分类:
其他好文 时间:
2015-06-03 22:55:26
阅读次数:
122