算法记录Day 10 | 栈与队列part01
LeetCode 232-用栈实现队列
题目链接:leetcode.cn/problems/im…
题解
class MyQueue {
public:
stack<int> inStack;
stack<int> outStack;
MyQueue() {}
void push(int x) { inStack.push(x); }
void in2out() {
while (!inStack.empty()) {
outStack.push(inStack.top());
inStack.pop();
}
}
int pop() {
if (outStack.empty()) {
in2out();
}
int top = outStack.top();
outStack.pop();
return top;
}
int peek() {
if (outStack.empty()) {
in2out();
}
return outStack.top();
}
bool empty() {
if (inStack.empty() && outStack.empty()) {
return true;
}
return false;
}
};
LeetCode 225-用队列实现栈
题目链接:leetcode.cn/problems/im…
题解
class MyStack {
public:
queue<int> queue1;
queue<int> queue2;
MyStack() {}
void push(int x) { queue1.push(x); }
int pop() {
int size = queue1.size();
int val;
size--;
while (size--) {
queue2.push(queue1.front());
queue1.pop();
}
val = queue1.front();
queue1.pop();
queue1 = queue2;
while (!queue2.empty()) {
queue2.pop();
}
return val;
}
int top() { return queue1.back(); }
bool empty() { return queue1.empty(); }
};