Stack
binling
这个作者很懒,什么都没留下…
展开
-
单调栈的应用 Largest Rectangle in Histogram,Max Tree,expression tree, 表达式求值,
单调栈的应用场景:求一侧或两侧比当前元素小(大)的最近的元素。 例题:一个数组,对于每个元素,输出左边第一个比它小的元素 暴力解法:对于每个元素,往前查看,直到遇到比自己小的,O(n^2) 单调栈:维护一个递增栈,满足递增的时候(比栈顶元素大),上一个元素(栈顶元素)就是所求,当新元素不满足递增(比栈顶大),退栈,直到栈顶比当前元素小,输出,然后再把当前元素入栈。每个元素最多入栈一次出栈一次原创 2014-12-12 18:34:56 · 734 阅读 · 0 评论 -
中缀表达式求值问题
1)有无括号 2)一种优先级运算符(只有+-或*/) 还是2种(+- 和*/都有) 3) 求逆波兰序列,求值,求表达式树 两种思路 1.分治 (求值,和求表达式树都可以用) 1)先去掉冗余括号(两边最外面的,如(1), (1 + 2) ),如果有的话。找到优先级最小的运算符的位置p,如果不存在,说明是一个数字,返回atoi后的值 2)两边递归求值 3)对两边的值应用该运算符原创 2015-06-24 13:13:38 · 1715 阅读 · 0 评论