题目链接:点击打开链接
题目大意:略。
解题思路:略。
相关企业
- 字节跳动
- 亚马逊(Amazon)
- 谷歌(Google)
- 微软(Microsoft)
AC 代码
- Java
// 解决方案(1) class CQueue { private final Stack<Integer> stack1 = new Stack<>(); private final Stack<Integer> stack2 = new Stack<>(); public CQueue() { } public void appendTail(int value) { stack1.push(value); } public int deleteHead() { if (stack2.isEmpty()) { while (!stack1.isEmpty()) { stack2.push(stack1.pop()); } if (stack2.isEmpty()) { return -1; } } return stack2.pop(); } } // 解决方案(2) class CQueue { LinkedList<Integer> A, B; public CQueue() { A = new LinkedList<Integer>(); B = new LinkedList<Integer>(); } public void appendTail(int value) { A.addLast(value); } public int deleteHead() { if(!B.isEmpty()) return B.removeLast(); if(A.isEmpty()) return -1; while(!A.isEmpty()) B.addLast(A.removeLast()); return B.removeLast(); } } /** * Your CQueue object will be instantiated and called as such: * CQueue obj = new CQueue(); * obj.appendTail(value); * int param_2 = obj.deleteHead(); */
- C++
class CQueue { public: stack<int> A, B; CQueue() {} void appendTail(int value) { A.push(value); } int deleteHead() { if(!B.empty()) { int tmp = B.top(); B.pop(); return tmp; } if(A.empty()) return -1; while(!A.empty()) { int tmp = A.top(); A.pop(); B.push(tmp); } int tmp = B.top(); B.pop(); return tmp; } };