当前位置: 首页 > news >正文

泉州晋江网站建设费用自媒体营销模式有哪些

泉州晋江网站建设费用,自媒体营销模式有哪些,优化网站做内链接,通过模版做网站leetcode232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元…

leetcode232. 用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(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 操作)

在这里插入图片描述

目录

  • leetcode232. 用栈实现队列
  • 题目分析
  • 算法介绍
  • 算法步骤
  • 算法代码
  • 算法流程图
  • 算法分析
  • 相似题目

题目分析

这是一个关于使用栈实现队列的算法题。题目要求实现一个队列,其主要操作包括push(入队)、pop(出队)、peek(查看队头元素)和empty(判断队列是否为空)。这里的关键在于如何使用两个栈来模拟队列的行为。

算法介绍

栈是一种后进先出(Last In First Out, LIFO)的数据结构,而队列是一种先进先出(First In First Out, FIFO)的数据结构。要使用栈来实现队列,我们需要两个栈:一个用于模拟队列的入队操作,另一个用于模拟队列的出队操作。

  • 当执行push操作时,直接将元素压入第一个栈(stIn)。
  • 当执行poppeek操作时,如果第二个栈(stOut)为空,则将第一个栈的所有元素移动到第二个栈中,然后执行相应的操作。
  • empty操作需要检查两个栈是否都为空。

算法步骤

  1. 初始化两个空栈:stInstOut
  2. push操作:将元素压入stIn
  3. pop操作:
    • 如果stOut为空,将stIn的所有元素移动到stOut
    • stOut弹出顶部元素并返回。
  4. peek操作:
    • 执行pop操作。
    • 将弹出的元素重新压入stOut
    • 返回该元素。
  5. empty操作:检查stInstOut是否都为空。

算法代码

class MyQueue {
public:stack<int> stIn;stack<int> stOut;MyQueue() {}void push(int x) {stIn.push(x);}int pop() {if(stOut.empty()){while(!stIn.empty()){stOut.push(stIn.top());stIn.pop();}}   int result=stOut.top();stOut.pop();return result;}int peek() {int res=this->pop();stOut.push(res);return res;}bool empty() {return stIn.empty() && stOut.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();* bool param_4 = obj->empty();*/

算法流程图

push
pop
peek
empty
开始
初始化两个空栈 stIn 和 stOut
操作类型
stIn.push x
stOut 是否为空
将 stIn 所有元素移动到 stOut
stOut.pop
执行 pop 操作
将弹出的元素重新压入 stOut
返回弹出元素
检查 stIn 和 stOut 是否都为空
返回检查结果
结束

算法分析

  • 时间复杂度
    • push操作:O(1)。
    • poppeek操作:最坏情况下(当stOut为空时)需要将所有元素从stIn转移到stOut,时间复杂度为O(n)。
    • empty操作:O(1)。
  • 空间复杂度:O(n),其中n是队列中的元素数量。
  • 易错点
    • pop操作中,确保在stOut为空时才移动stIn中的元素。
    • peek操作中,弹出元素后需要将其再次压入stOut

相似题目

题目链接
用队列实现栈LeetCode 225
最小值栈LeetCode 155
栈的压入、弹出序列LeetCode 946

请注意,以上表格仅为示例,实际链接可能需要根据具体平台和题目编号进行调整。

http://www.yidumall.com/news/30601.html

相关文章:

  • sketch网站花边怎么做百度拉新推广平台
  • 申请完域名怎么做网站网站制作公司怎么找
  • node 做的大型网站关键词有哪些关联词
  • 整合网络营销平台佛山百度seo代理
  • 手机网站在线咨询代码深圳网站建设推广方案
  • 政府网站集约化建设试点工作方案杭州龙席网络seo
  • 域名备案成功如何做网站佛山网站优化
  • 用asp.net做的网站框架北京网站优化经理
  • 用什么做公司宣传网站全能搜
  • dw怎么做鲜花网站海外市场推广方案
  • 字体图标网站营销软文范文200字
  • 做平面的网站河北百度推广客服电话
  • 湖北省建设人力资源网站首页帮人推广的平台
  • 汽车维修保养网站模板关键词分词工具
  • 手机微网站第二年续费吗网站优化策略分析
  • 996建站网站制作互联网营销有哪些方式
  • 投票网站开发如何限制ip百度账号查询
  • 北京网站建设备案网站结构优化
  • 成都地铁小程序google seo怎么做
  • 网站如何接入支付宝网站优化推广平台
  • seo如何分析一个网站网络营销方式有哪几种
  • 转塘有做网站的吗seo排名技巧
  • 铺面怎样做放上网站网站推广如何收费
  • 做qq头像的网站有哪些google搜索关键词热度
  • 做网站每天任务及实训过程微信营销软件免费版
  • 图书馆网站建设毕业论文推广平台排名
  • 信誉好的营销网站建设品牌推广活动有哪些
  • excel 表格 做的网站个人在线做网站免费
  • 岳阳公司网站开发怎么做好seo推广
  • 成都网站制作价格seo页面如何优化