单调队列(单调栈)的理解(2) ---- poj3162体会

来源:互联网 发布:淘宝浅草风是正品吗 编辑:程序博客网 时间:2024/05/16 05:51

单调栈或单调队列可以找用来优化一些问题。

他们的共同点就是通过记录一些特殊的值来达到优化 ; 

具体怎么工作的他家也许都知道 ;  这里我讲一下到底是记录了什么数据使得单调栈可以达到什么样的优化 , 什么样的题目可以使用单调栈  ;

以单调递增栈来说  : 

1.在数据入栈的时候 , 可以找到左边第一个比入栈数小的元素 , 通过记录一些其他的数据可以知道这个元素的位置什么的其他性质 , 就不需要再向左遍历 ; 

2.在数据出栈的时候 , 当前的元素就是右边第一个比它小的元素 ; 

3.在栈内的元素有一定性质 , 第一个元素就是当前点到初始遍历点的最小元素 , 第一个元素左边都比它大 , 栈内第2个到第n个元素表示从栈内第一个元素的点到当前的点的第

第二小 , 第三小 , 第四小 ....... ; 


最后一句, 见到最大最小问题的就要往这上面想 , 多思考 , 就算不是 , 那也没什么 , 主要还是大脑要灵活 , 思维多转变 ;



------------------------------理解才是取胜之道 ------------------------

0 0