Max Stack
Design a max stack that supports push, pop, top, peekMax and popMax.
push(x) -- Push element x onto stack.
pop() -- Remove the element on top of the stack and return it.
top() -- Get the element on the top.
peekMax() -- Retrieve the maximum element in the stack.
popMax() -- Retrieve the maximum element in the stack, and remove it. If you find more than one maximum elements, only remove the top-most one.
Example 1:
分析
2个stack, 普通和Max stack,一起增和减,大小一样
记得popMax时候 需要把stack里的最大数去掉,需要一个buffer
也可以用LRU做法,double linked list and tree map
Last updated