石家庄外贸网站建设公司排名,十大团购网站,手机微网站怎么做的,巴中建设网站#x1f680; 算法题 #x1f680; #x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 #x1f340; #x1f332; 越难的东西,越要努力坚持#xff0c;因为它具有很高的价值#xff0c;算法就是这样✨ #x1f332; 作者简介#xff1a;硕风和炜#xff0c;… 算法题 算法刷题专栏 | 面试必备算法 | 面试高频算法 越难的东西,越要努力坚持因为它具有很高的价值算法就是这样✨ 作者简介硕风和炜CSDN-Java领域优质创作者保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享 恭喜你发现一枚宝藏博主,赶快收入囊中吧 人生如棋我愿为卒行动虽慢可谁曾见我后退一步 算法题 目录 题目链接⛲ 题目描述 求解思路实现代码运行结果⚡ 栈 | 队列 求解思路 实现代码 运行结果 共勉 题目链接
232. 用栈实现队列
⛲ 题目描述
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作push、pop、peek、empty
实现 MyQueue 类
void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空返回 true 否则返回 false
说明
你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。 你所使用的语言也许不支持栈。你可以使用 list 或者 deque双端队列来模拟一个栈只要是标准的栈操作即可。
示例 1
输入 [“MyQueue”, “push”, “push”, “peek”, “pop”, “empty”] [[], [1], [2], [], [], []] 输出 [null, null, null, 1, 1, false]
解释 MyQueue myQueue new MyQueue(); myQueue.push(1); // queue is: [1] myQueue.push(2); // queue is: [1, 2] (leftmost is front of the queue) myQueue.peek(); // return 1 myQueue.pop(); // return 1, queue is [2] myQueue.empty(); // return false
提示
1 x 9 最多调用 100 次 push、pop、peek 和 empty 假设所有操作都是有效的 例如一个空的队列不会调用 pop 或者 peek 操作 求解思路实现代码运行结果 ⚡ 栈 | 队列 求解思路
题目让我们使用俩个栈来实现队列先来回顾一下栈的特性先进后出后进先出队列的特性先进先出后进后出。俩个栈一个栈用来直接存储进入的元素另外一个栈用来做辅助在弹出元素/返回栈顶元素的时候先把栈1的元素放到栈2取出元素然后再将栈2的放到栈1中重复这个过程。有了基本的思路接下来我们就来通过代码来实现一下。 实现代码
class MyQueue {StackInteger stack1;StackInteger stack2;public MyQueue() {stack1new StackInteger();stack2new StackInteger();}public void push(int x) {stack1.push(x);}public int pop() {while(!stack1.empty()){stack2.push(stack1.pop());}int tempstack2.pop();while(!stack2.empty()){stack1.push(stack2.pop());}return temp;}public int peek() {while(!stack1.empty()){stack2.push(stack1.pop());}int tempstack2.peek();while(!stack2.empty()){stack1.push(stack2.pop());}return temp; }public boolean empty() {return stack1.empty();}
}/*** Your MyQueue object will be instantiated and called as such:* MyQueue obj new MyQueue();* obj.push(x);* int param_2 obj.pop();* int param_3 obj.peek();* boolean param_4 obj.empty();*/运行结果 共勉
最后我想和大家分享一句一直激励我的座右铭希望可以与大家共勉