Java实现用两个栈来实现队列
来源:互联网 发布:java api1.7中文版 编辑:程序博客网 时间:2024/04/29 09:57
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
我的思路就是,栈1用来pop,栈2用来push。
所以栈1pop之前,应该保证pop的数是最早入栈的数。栈2push之前要保证先于该数的所有数已经都在栈2里面了。
这是一次AC的代码,41ms ,528K
import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { while(!stack1.isEmpty()){ stack2.push(stack1.pop()); } stack2.push(node); } public int pop() { while(!stack2.isEmpty()){ stack1.push(stack2.pop()); } return stack1.pop(); }}
看一下评论区大神的代码:
链接:https://www.nowcoder.com/questionTerminal/54275ddae22f475981afa2244dd448c6来源:牛客网import java.util.Stack; public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { stack1.push(node); } public int pop() { if(stack1.empty()&&stack2.empty()){ throw new RuntimeException("Queue is empty!"); } if(stack2.empty()){ while(!stack1.empty()){ stack2.push(stack1.pop()); } } return stack2.pop(); }}
嗯。确实。
我应该考虑一下边界条件的,栈为空,或者不是int类型的输入等等。
阅读全文
0 0
- Java实现用两个栈来实现队列
- Java两个栈来实现一个队列
- 用两个队列来实现栈
- 用两个栈来实现一个队列
- 用两个栈来实现一个队列()
- 用两个栈来实现一个队列
- 用两个栈来实现队列
- 用两个栈来实现一个队列
- 用两个栈来实现一个队列
- 用两个栈来实现队列
- 用两个栈来实现一个队列
- 用两个栈来实现一个队列
- 用两个栈来实现一个队列
- 两个栈来实现队列
- 用两个栈来实现一个队列以及用两个队列来实现一个栈
- 用两个栈来实现一个队列&&用两个队列来实现栈
- 用两个栈实现队列java实现
- 面试/算法--使用两个栈来实现队列--java
- Java多线程-2 基本线程间通信 && volatile keyword
- 怎么减少编程中的 bug ?
- Leetcode59. Spiral Matrix II
- JAVA构造器
- 【SDOI省队集训题】pair(线段树+二分)
- Java实现用两个栈来实现队列
- 滚动监听,bootstrap头文件引用方式
- python 多cpu并行编程
- 安卓 仿iOS实现图片按下变色(不拦截事件实现)
- 9.activiti工作流-排他网关(ExclusiveGateWay)
- 给初学者的RxJava2.0教程(五)
- dom对象中常见节点的属性
- 项目实训第三周(1)--信息维护模块编码之个人信息显示
- 矩阵奇异值分解简介及C++/OpenCV/Eigen的三种实现