补全:弹栈比较

补全 next_greater 的弹栈条件:栈顶的值比 a[i] 小才弹。补全后输出第 0 个数的答案。 本节模型:next_greater / prev_greater 用单调栈(vector 存下标)求右边 / 左边第一个更大的数,没有

开始练习 →

补全:记下答案

补全 next_greater:弹栈之前把 a[i] 记成栈顶那个下标的答案。补全后输出第 0 个数的答案。 本节模型:next_greater / prev_greater 用单调栈(vector 存下标)求右边 / 左边第一个更大的数,

开始练习 →

补全:入栈等待

补全 next_greater:每个下标处理完都要入栈,等着以后被更大的数匹配。补全后输出全部答案。 本节模型:next_greater / prev_greater 用单调栈(vector 存下标)求右边 / 左边第一个更大的数,没有记

开始练习 →

左边最近更大什么时候读

第 1 步:下面一行填左边最近更大 第 2 步:弹掉不比 5 大的,读栈顶 第 3 步:弹掉不比 3 大的,读栈顶 第 4 步:弹掉不比 4 大的,读栈顶 第 5 步:弹掉不比 2 大的,读栈顶 第 6 步:弹掉不比 6 大的,读栈顶 第

开始练习 →

相等的元素怎么处理

求严格更大时,遇到和 a[i] 相等的栈顶,应当【0】。 本节模型:next_greater / prev_greater 用单调栈(vector 存下标)求右边 / 左边第一个更大的数,没有记 -1。

开始练习 →

这个栈是单调增还是减

求上一个更大元素时,栈从底到顶保持【0】。 本节模型:next_greater / prev_greater 用单调栈(vector 存下标)求右边 / 左边第一个更大的数,没有记 -1。

开始练习 →

几个有左边更大

运行下面这段程序: 本节模型:next_greater / prev_greater 用单调栈(vector 存下标)求右边 / 左边第一个更大的数,没有记 -1。 #include <algorithm> #include &

开始练习 →

一路递减的数组

运行下面这段程序: 本节模型:next_greater / prev_greater 用单调栈(vector 存下标)求右边 / 左边第一个更大的数,没有记 -1。 #include <algorithm> #include &

开始练习 →

补全:相等也弹

补全 prev_greater 的弹栈条件:严格更大时,相等的也要弹。补全后数有几个元素有左边更大。 本节模型:next_greater / prev_greater 用单调栈(vector 存下标)求右边 / 左边第一个更大的数,没有记

开始练习 →

补全:先读栈顶

补全 prev_greater:栈不空时,栈顶就是左边最近的更大。补全后数有几个元素有左边更大。 本节模型:next_greater / prev_greater 用单调栈(vector 存下标)求右边 / 左边第一个更大的数,没有记 -1

开始练习 →