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

建设门户网站费用保定百度首页优化

建设门户网站费用,保定百度首页优化,wordpress怎么用两个主题,优化方案2021版英语答案题目链接 题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 i…

题目链接

题目描述

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

解题

解法一:

请添加图片描述
思路

我定义了两个栈:

  • in栈:用于存储新加入的元素。
  • out栈:用于存储即将被弹出的元素。
    引入了两个计数器:
  • numOfIn:记录 in 栈中的元素数量。
  • numOfOut:记录 out 栈中的元素数量。

进行pop操作时,先将除栈底元素的其他元素全部压入另外一个栈中,弹出栈底元素之后再压回

class MyQueue {
public:stack<int>in;int numOfIn;stack<int>out;int numOfOut;MyQueue() {numOfIn=0;numOfOut=0;}void push(int x) {in.push(x);numOfIn++;}int pop() {while(numOfIn>1){int num=in.top();in.pop();numOfIn--;out.push(num);numOfOut++;}int re=in.top();in.pop();numOfIn--;while(numOfOut>0){int num=out.top();in.push(num);out.pop();numOfOut--;numOfIn++;}return re;}int peek() {while(numOfIn>1){int num=in.top();in.pop();numOfIn--;out.push(num);numOfOut++;}int re =  in.top();while(numOfOut>0){int num=out.top();in.push(num);out.pop();numOfOut--;numOfIn++;}return re;}bool empty() {return  in.empty();}
};

这种解法的缺点也非常明显 每次pop()peek()都会牵扯到大量数据移动 效率很低

解法二

思路:
入栈就直接进入in栈,出栈时如果out栈不为空,out栈执行pop操作,反之,In栈元素全部压入out栈中再pop
这样所有元素就不用来回倒腾啦
请添加图片描述

class MyQueue {
public:stack<int>in;stack<int>out;MyQueue() {}void push(int x) {in.push(x);}int pop() {if(out.empty()){while(!in.empty()){int num;num=in.top();in.pop();out.push(num);}}int topNum=out.top();out.pop();return topNum;}int peek() {if(out.empty()){while (!in.empty()) {int num = in.top();in.pop();out.push(num);
}}return out.top();}bool empty(){return  in.empty()&&out.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();*/
http://www.dtcms.com/wzjs/90822.html

相关文章:

  • 网站建设五年发展规划整站优化要多少钱
  • 菜鸟如何建网站如何用模板建站
  • 专业网站建设最权威市场营销主要学什么
  • 文件下载网站源码谷歌浏览器免费入口
  • 网站网页优化技巧近日网站收录查询
  • 虚拟现实技术seo网络推广培训班
  • 长春网站建设及推广友情链接样式
  • 怎样做网站seo优化网站推广怎么弄
  • 网站开发项目报价单竞价推广托管公司介绍
  • javaee做网站建设西安网站定制开发
  • 国外网站 服务器关键词推广
  • 可以做翻译任务的网站在线域名ip查询
  • 北京企业网站备案需要多久百度帐号登录
  • 电视台网站模版浙江关键词优化
  • 怎么在网站后台做标题的超链接社群营销平台有哪些
  • 神华集团 两学一做 网站企业网络营销方案设计
  • 怎样做约票的网站意思免费推广网站视频
  • 专业网站推广引流国家市场监管总局官网
  • 网站开发用的工具长沙seo培训班
  • 网站网页设计方案关键词优化怎么写
  • 招聘网站如何做运营站长之家seo
  • 网站创建风格品牌推广的意义
  • 新网站制作市场seo产品优化免费软件
  • 网站定制电话最佳搜索引擎
  • 做公司英文网站东莞seo网络公司
  • 网站3d展示怎么做的专门制作小程序的公司
  • 网站建设广告素材推广策略有哪些方法
  • php网站api接口写法百度收录排名查询
  • 什么网站排名做的最好杭州云优化信息技术有限公司
  • 值得浏览的国外网站简单制作html静态网页