单调栈
概念:单调递增或单调减的栈,跟单调队列差不多,但是只用到它的一端;
用处:
1,在线性数据中可以在O(n)的时间复杂度内记录数据的最大值最小值及前缀后缀中的最值(nlog(n));
2,在线性数据中可以在O(n)的时间复杂度内记录下每一个位置中比当前位置大(小)的最近位置;
注意:
1,通常在单调栈中存的是data【】的下标而不是其中的值,因为通过下标我们可以找到值而通过值却找不到下标;
2,单调栈通常与区间最值问题联系,在考虑用线段树或树状数组前先考虑能否用单调栈(队列);
下面我们来看几个例题:
1,
分析:这到题很明显用单调栈,因为我们只考虑一个方向
本文介绍了单调栈的概念及其在线性数据处理中的应用,包括如何在O(n)的时间复杂度内记录最大最小值以及查找相邻的大(小)值位置。文中还提到了使用单调栈时的一些注意事项,并通过实例进行说明。
988

被折叠的 条评论
为什么被折叠?



