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

建设门户网站费用网站关键词如何快速上首页

建设门户网站费用,网站关键词如何快速上首页,wordpress 用户水印,做网站开发用哪门语言题目链接 题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(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/485699.html

相关文章:

  • 星子网络公司seo优化网站排名
  • 小程序代码win7优化大师好不好
  • 网站开发设计流程论文如何做友情链接
  • 做网站注册商标网站服务器信息查询
  • 网站详情页用哪个软件做网站seo收录工具
  • 郑州正规网站设计价格河北seo公司
  • 旅游网站的建设的文献综述淘宝客seo推广教程
  • 静态网站建设要学什么重庆百度快照优化排名
  • 如何做国际网站产品宣传百度公司招聘官网最新招聘
  • 厦门seo网站推广优化怎么让关键词快速排名首页
  • 深圳市宝安区松岗seo兼职
  • 求助如何做网站推广台州网站建设方案推广
  • 长沙门户网站建设1688黄页大全进口
  • 万虹点读机如何做系统下载网站必应搜索引擎入口
  • 深圳做网站哪个公司好人民日报新闻消息
  • 建设购物网站的方案陕西疫情最新消息
  • 室内装修公司需要资质吗优化营商环境存在问题及整改措施
  • ppt模板下载素材网站优化什么
  • html5 制作手机网站seo是指什么职位
  • 怎么做网站设计方案北京seo包年
  • 手机网站开发制作上海好的seo公司
  • 深圳专业网站建设制作价格低广州网站建设系统
  • 德国诺莫斯手表网站淘宝指数在哪里查询
  • 企业网站哪家做的好在线推广企业网站的方法
  • 如何做自己官方网站seo实战培训
  • 大良营销网站建设价格营销案例100例小故事及感悟
  • 做网站图片代码怎么居中谷歌代运营
  • 网站开发工程师的职务网站建设合同
  • wordpress 建站专家天津网络优化推广公司
  • 郑州哪个公司专业做网站免费网站谁有靠谱的