剑指off"/>
剑指off
题目:实现一个栈,要求可以得到min,pop push min 复杂度O(1) min是得到最小元素,不是得到最小并弹出来
分析:用一个辅助栈,每次push的时候都是压入最小的元素,同时弹出
偷懒了,用STL的栈简单写一下
<span style="font-size:14px;">void push(stack<int > &stack1,stack<int > &stack2,int n)
{if (stack1.empty()) {stack1.push(n);stack2.push(n);}else{stack1.push(n);int temp= stack2.top();if (n<temp) {stack2.push(n);}elsestack2.push(temp);}
}
void pop(stack<int > &stack1,stack<int > &stack2)
{if (!stack1.empty()) {printf("the stack is empty");return ;}stack1.pop();stack2.pop();
}
int min(stack<int > &stack2)
{return stack2.top();
}</span>
更多推荐
剑指off
发布评论