✔做题思路 or 感想 :
- 用栈来实现队列的一般方法是:造一个输入栈和一个输出栈来模拟队列
- 当要push时,则把元素push进输入栈
- 当要pop时,检测输出栈是否有元素。若有,则直接把输出栈的栈顶元素pop掉就好。若无,则要先把输入栈的元素倒进输出栈,再进行操作
class MyQueue {
public:
MyQueue() {
}
stack<int> InSt;
stack<int> OutSt;
void push(int x) {
InSt.push(x);
}
int pop() {
if (OutSt.size() != 0) {
int result = OutSt.top();
OutSt.pop();
return result;
} else {
while (InSt.size() != 0) {
OutSt.push(InSt.top());
InSt.pop();
}
int result = OutSt.top();
OutSt.pop();
return result;
}
}
int peek() {
if (OutSt.size() != 0) {
int result = OutSt.top();
return result;
} else {
while (InSt.size() != 0) {
OutSt.push(InSt.top());
InSt.pop();
}
int result = OutSt.top();
return result;
}
}
bool empty() {
return InSt.empty() && OutSt.empty();
}
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!