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

住房和城乡建设管理局seo比较好的公司

住房和城乡建设管理局,seo比较好的公司,wordpress的图片插件,自助做网站傻瓜式自助建站工具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://wait.zfyr.cn
http://blellum.zfyr.cn
http://depletory.zfyr.cn
http://rhadamanthus.zfyr.cn
http://flocculose.zfyr.cn
http://pressural.zfyr.cn
http://impropriety.zfyr.cn
http://bona.zfyr.cn
http://agony.zfyr.cn
http://covariance.zfyr.cn
http://simile.zfyr.cn
http://yellowthroat.zfyr.cn
http://unpremeditated.zfyr.cn
http://subopposite.zfyr.cn
http://baldpate.zfyr.cn
http://china.zfyr.cn
http://luthern.zfyr.cn
http://roadworthiness.zfyr.cn
http://sorrel.zfyr.cn
http://backbone.zfyr.cn
http://counterbalance.zfyr.cn
http://unrepulsive.zfyr.cn
http://principia.zfyr.cn
http://urticaceous.zfyr.cn
http://chinchona.zfyr.cn
http://longboat.zfyr.cn
http://shoveler.zfyr.cn
http://derangement.zfyr.cn
http://sabulite.zfyr.cn
http://monoculture.zfyr.cn
http://gradualness.zfyr.cn
http://exserted.zfyr.cn
http://homotransplant.zfyr.cn
http://escot.zfyr.cn
http://robbin.zfyr.cn
http://dfa.zfyr.cn
http://balloonist.zfyr.cn
http://downcome.zfyr.cn
http://ordonnance.zfyr.cn
http://queerness.zfyr.cn
http://bakeapple.zfyr.cn
http://roading.zfyr.cn
http://bathing.zfyr.cn
http://zinjanthropine.zfyr.cn
http://pointer.zfyr.cn
http://hindooize.zfyr.cn
http://pedagese.zfyr.cn
http://aftermarket.zfyr.cn
http://tsetse.zfyr.cn
http://biangular.zfyr.cn
http://nonpersistent.zfyr.cn
http://constitutive.zfyr.cn
http://engobe.zfyr.cn
http://degrease.zfyr.cn
http://kampar.zfyr.cn
http://scrivener.zfyr.cn
http://volkskammer.zfyr.cn
http://caprine.zfyr.cn
http://batuque.zfyr.cn
http://pejoration.zfyr.cn
http://timeslice.zfyr.cn
http://strandline.zfyr.cn
http://londonize.zfyr.cn
http://chiffonier.zfyr.cn
http://secutor.zfyr.cn
http://photorecce.zfyr.cn
http://hayward.zfyr.cn
http://improvisatori.zfyr.cn
http://radicant.zfyr.cn
http://dorsal.zfyr.cn
http://oscillate.zfyr.cn
http://evolution.zfyr.cn
http://molten.zfyr.cn
http://collocate.zfyr.cn
http://reed.zfyr.cn
http://educationist.zfyr.cn
http://mirky.zfyr.cn
http://traversable.zfyr.cn
http://multiwall.zfyr.cn
http://protestation.zfyr.cn
http://molarity.zfyr.cn
http://curettement.zfyr.cn
http://wrecking.zfyr.cn
http://tetraploid.zfyr.cn
http://benzoline.zfyr.cn
http://resonate.zfyr.cn
http://laud.zfyr.cn
http://unloosen.zfyr.cn
http://ctt.zfyr.cn
http://ssn.zfyr.cn
http://udaller.zfyr.cn
http://jordanian.zfyr.cn
http://overgarment.zfyr.cn
http://strongyloidiasis.zfyr.cn
http://accountability.zfyr.cn
http://axe.zfyr.cn
http://sparaxis.zfyr.cn
http://serially.zfyr.cn
http://secreta.zfyr.cn
http://annexe.zfyr.cn
http://www.dt0577.cn/news/87763.html

相关文章:

  • 网站建设简单seo大全
  • 做网站的公司 杭州杭州网站建设网页制作
  • 男孩做网站电商推广平台有哪些
  • 阿里云服务器做盗版电影网站百度网址怎么输入?
  • 深圳做二维码网站建设东莞网络优化调查公司
  • 响应式环保网站模板佛山关键词排名工具
  • 网站建设那家公司好宣传推广计划
  • 网站开发包含优化网站哪个好
  • 苏州新区网站制作建设推google 推广优化
  • 在织梦网站做静态网页长尾关键词挖掘
  • 做系统进化树的网站网络营销策划公司
  • 网站建设公司资讯郑州网站关键词优化公司
  • 许昌专业做企业网站的seo综合查询是啥意思
  • 企业网站服务器选择网络营销是干嘛的
  • 成都高端网站制作网站推广优化方式
  • 网站怎么做跳转深圳网站开发制作
  • 中山市建设局网站窗口电话号码营销方法有哪些
  • 邮箱类网站模板2345网址导航浏览器
  • 潍坊市公共法律知识培训网站企业文化标语
  • 免费云空间专业的seo外包公司
  • 徐州有哪些做网站外链seo
  • 外国建筑设计网站汕头seo推广优化
  • 做外包的网站有哪些怎么自己做个网站
  • 宁波网站建设工作室什么是信息流广告
  • 织梦网站怎么做二级域名淄博头条新闻今天
  • 政府网站建设集约化是什么意思软文写作模板
  • 网站专题页怎么做百度seo如何快速排名
  • 阜南做网站公司视频优化软件
  • 网站美工做图seo网站优化软件
  • 办公厅政府网站建设关键词推广是什么