leetcode在力扣 App 中打开
调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
简单
相关标签
相关企业
提示

实现一个MyQueue类,该类用两个栈来实现一个队列。


示例:

MyQueue queue = new MyQueue();

queue.push(1);
queue.push(2);
queue.peek(); // 返回 1
queue.pop(); // 返回 1
queue.empty(); // 返回 false


说明:

  • 你只能使用标准的栈操作 -- 也就是只有 push to top, peek/pop from top, sizeis empty 操作是合法的。
  • 你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。
  • 假设所有操作都是有效的 (例如,一个空的队列不会调用 pop 或者 peek 操作)。

通过次数
40.4K
提交次数
56.2K
通过率
71.9%

相关标签

相关企业

提示 1
队列和栈的主要区别是元素的顺序。队列删除最旧的项,栈删除最新的项。如果你只访问最新的项,那么如何从栈中删除最旧的项?

提示 2
我们可以通过不断地删除最新的项(将这些项插入临时栈中)来删除栈中最老的项,直到得到一个元素为止。然后,在检索到最新项后,将所有元素返回。与此有关的问题是,每次在一行中做几个弹出操作(pop)将需要O(n)的时间。我们可以优化在一行中连续弹出这一场景吗?

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
["MyQueue","push","push","peek","pop","empty"]
[[],[1],[2],[],[],[]]
Source