Meta Interview Question

use stack to pop out the max num under O(1)

Interview Answers

Anonymous

Feb 25, 2012

my way is too complex... Good answer would be using Class or 2 stacks, and keep record the current max

1

Anonymous

Nov 12, 2012

Using c++ and 2stack #include #include std::stack S; void addToStack(int value) { std::stack T; while(!S.empty() && (S.top() > value)) { int V = S.top(); T.push(V); S.pop(); } S.push(value); while(!T.empty()) { S.push(T.top()); T.pop(); } } int getMaxValue() { int value = S.top(); S.pop(); return value; } int main() { addToStack(17); addToStack(15); addToStack(4); addToStack(16); addToStack(1); int max = getMaxValue(); std::cout << max << std::endl; }