欢迎光临散文网 会员登陆 & 注册

开始学算法(刷算法题)过程记录 8

2022-05-11 11:15 作者:学途压力大  | 我要投稿

题目描述:用两个栈实现队列

题目链接:https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6

题目思路:插入时压入栈1。弹出时栈2不为空,弹出栈2栈顶元素,如果为空,把栈1逐个出栈入栈2,再弹出栈2栈顶元素。

利用了2个栈互相压入弹出可以改变头尾顺序的特点。可以想象成一条线在2个桶之间来回弹,第一个桶尾朝下,弹到另一个桶就是尾朝上了。再弹回去就是尾朝下。

题目实现:

push 从数组尾插元素 。pop从数组尾弹出元素,返回弹出的元素。

相关题目:用2个队列实现一个栈

解题思路:队列先进后出,栈先进先出。可以把队列前后反向放置成一个U型,如下图所示

题目实现:

unshift()从数组头插入元素,pop()从数组尾弹出元素,返回弹出的元素


开始学算法(刷算法题)过程记录 8的评论 (共 条)

分享到微博请遵守国家法律