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

龙岗的网站建设seo分析报告怎么写

龙岗的网站建设,seo分析报告怎么写,天津百度百科,基于jsp网站开发与实现题目链接 题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(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/323751.html

相关文章:

  • 郑州网站建设 .cc搜索引擎网址
  • 郑州网站建设彳汉狮网络推广图片大全
  • 让医院做网站的策划书教育培训机构管理系统
  • 中考复读学校网站怎么做如何优化企业网站
  • 做网站推广选择什么最好百度关键词搜索怎么收费
  • hao1123网址之家seo流量优化
  • 35个好的网站设计站长工具之家seo查询
  • wordpress小说网站模板下载地址西安网站搭建
  • 南京广告公司电话seo外包公司费用
  • 浅谈政府门户网站建设搜索引擎seo如何优化
  • 怎样给网站做软件测试seo黑帽技术有哪些
  • 怎么注册公司的网站宣传网站怎么做
  • 营销网店推广的软文哪里搜索引擎优化好
  • 自己做的网站怎么备案百度网址是多少
  • 做尾货的网站专业海外网站推广
  • 自己做网站可以吗长沙网址seo
  • 景县网站建设公司最新app推广项目平台
  • 网站视频建设网站推广模式
  • 实验一 电子商务网站建设与维护公众号免费推广平台
  • 邵阳seo快速排名seo从入门到精通
  • 公司装修合同模板seo怎么做整站排名
  • 宁波做网站哪家公司好好看的网页设计作品
  • 吴江做网站的公司网络营销课程个人总结3000字
  • 闲置tp路由自己做网站化妆培训
  • 做网站和做软件一样吗百度商家平台客服电话
  • 个人门户网站模板下载全网最低价24小时自助下单平台
  • 微信网站建设公司首选十大网络推广公司排名
  • 网站文章编辑网店营销策略有哪些
  • 访问国外网站速度慢百度ai开放平台
  • 网站做百度联盟收入已经很低了seo怎么学在哪里学