您的位置:首页 > Web前端

关于牛客网剑指offer编程题思路(栈和队列篇)

2018-03-22 15:07 148 查看

相关题目来源

牛客网剑指offer编程题_栈和队列

解题思路

1. 用两个栈实现队列

这道题阿里电话面试的时候问过,本来很简单的,当时太不自信了qaq

首先一个stack是作为接受队列的push输入,另一个stack作为输出pop,用效率比较高的方法是要pop的时候检查一下stack2是否为空,不为空则直接pop,为空则要把stack1所有元素倒给stack2。

参考: https://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html

2. 包含min函数的栈

用两个栈,一个来存储数据,一个来存储数据栈对应的当前min值,两个栈数据的数量要一样多。

参考:

https://www.nowcoder.com/questionTerminal/4c776177d2c04c2494f2555c9fcc1e49

3. 栈的压入、弹出序列

这个是判断弹出序列是否为可能的序列之一。

需要一个辅助栈,遍历压入栈序列和弹出序列,栈每次压入后都要判断栈顶的元素是否是弹出序列遍历的首元素,是的话弹出,不是则继续压入直到找到和弹出序列首元素相同的栈顶元素。

遍历结束后判断栈是否为空,是的话弹出序列正确

参考:

https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106?source=relative
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息