这是栈这个数据结构特殊的表现形式,主要就是从栈顶到栈底的存储拥有一个递增或者递减的规则。
单调栈思想模板:维护一个递增或者递减的stack,找出stack具体存什么(下标或者项数值),单调数据存入栈中,遇到非单调数据就出栈,以及其他的一些计算操作,并且直到栈种的数据重新回归单调。更新栈后继续遍历。
伪代码:
function monotoneStack(数据参数){
const stack = []
定义一个结果容器
for(遍历数据){
while(stack.length && 满足一个判断条件){
出栈操作
其他的一些计算
}
入栈操作
}
返回结果
}
首先可以上两个题目体验一下:
请根据每日气温