相关题目来源
解题思路
1. 用两个栈实现队列
这道题阿里电话面试的时候问过,本来很简单的,当时太不自信了qaq
首先一个stack是作为接受队列的push输入,另一个stack作为输出pop,用效率比较高的方法是要pop的时候检查一下stack2是否为空,不为空则直接pop,为空则要把stack1所有元素倒给stack2。
2. 包含min函数的栈
用两个栈,一个来存储数据,一个来存储数据栈对应的当前min值,两个栈数据的数量要一样多。
3. 栈的压入、弹出序列
这个是判断弹出序列是否为可能的序列之一。
需要一个辅助栈,遍历压入栈序列和弹出序列,栈每次压入后都要判断栈顶的元素是否是弹出序列遍历的首元素,是的话弹出,不是则继续压入直到找到和弹出序列首元素相同的栈顶元素。
遍历结束后判断栈是否为空,是的话弹出序列正确