leet-code/src/main/java/leetcode/editor/cn/YongLiangGeZhanShiXianDuiLieLcof.java
2021-04-29 23:21:52 +08:00

75 lines
1.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的
//功能。(若队列中没有元素deleteHead 操作返回 -1 )
//
//
//
// 示例 1
//
// 输入:
//["CQueue","appendTail","deleteHead","deleteHead"]
//[[],[3],[],[]]
//输出:[null,null,3,-1]
//
//
// 示例 2
//
// 输入:
//["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]
//[[],[],[5],[2],[],[]]
//输出:[null,-1,null,null,5,2]
//
//
// 提示:
//
//
// 1 <= values <= 10000
// 最多会对 appendTail、deleteHead 进行 10000 次调用
//
// Related Topics 栈 设计
// 👍 212 👎 0
package leetcode.editor.cn;
import java.util.Stack;
//剑指 Offer 09:用两个栈实现队列
public class YongLiangGeZhanShiXianDuiLieLcof {
public static void main(String[] args) {
//测试代码
// Solution solution = new YongLiangGeZhanShiXianDuiLieLcof().new Solution();
}
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class CQueue {
Stack<Integer> stack1;
Stack<Integer> stack2;
public CQueue() {
stack1 = new Stack<>();
stack2 = new Stack<>();
}
public void appendTail(int value) {
stack1.push(value);
}
public int deleteHead() {
if (stack2.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.isEmpty() ? -1 : stack2.pop();
}
}
/**
* Your CQueue object will be instantiated and called as such:
* CQueue obj = new CQueue();
* obj.appendTail(value);
* int param_2 = obj.deleteHead();
*/
//leetcode submit region end(Prohibit modification and deletion)
}