高级数据结构-单调栈

单调栈的基本应用:在一串数中,找到左边和右边最近的大于(小于)自己的数,O(n)实现。 以找最近邻大数为例,解法是维护一个单调递增的栈。假设现在有一个单调栈,从栈底至栈顶元素为A、B、C,现在要插入元素D。如果D>C,那么要讲C弹出,同时,C的右值为D,左值为B。遍历完成之后,栈中可能还会剩下一些元素,但是对于这些元素来说,因为压在自己上面的都是比自己小的数,所以他们没有最右近邻值。 理由说明:由
相关文章
相关标签/搜索