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

网站建设带购物车太仓网站开发

网站建设带购物车,太仓网站开发,公司主页怎么写,扁平化中文网站模板下载🌟坚持每日刷算法,😃将其变为习惯🤛让我们一起坚持吧💪 文章目录 [232. 用栈实现队列](https://leetcode.cn/problems/implement-queue-using-stacks/)思路CodeJavaC 复杂度 [225. 用队列实现栈](https://leetcode.cn/…

🌟坚持每日刷算法,😃将其变为习惯🤛让我们一起坚持吧💪

文章目录

  • [232. 用栈实现队列](https://leetcode.cn/problems/implement-queue-using-stacks/)
    • 思路
    • Code
      • Java
      • C++
    • 复杂度
  • [225. 用队列实现栈](https://leetcode.cn/problems/implement-stack-using-queues/)
    • 思路
    • Code
      • C++
    • Java
    • 复杂度

232. 用栈实现队列

思路

首先应该先明确队列是先进先出,

而栈是先进后出,而如果想用栈实现队列,就可以尝试用两个栈

进栈和出栈

  • 进栈模拟入队列
  • 出栈模拟先出队列

画图如下

image-20230917183021976

Code

Java

class MyQueue {Stack<Integer> stIn;Stack<Integer> stOut;public MyQueue() {stIn = new Stack<>();stOut = new Stack<>();}public void push(int x) {stIn.push(x);}public int pop() {if(stOut.isEmpty()){while(!stIn.isEmpty()){stOut.push(stIn.pop());} }return stOut.pop();}public int peek() {int res = this.pop();stOut.push(res);return res;}public boolean empty() {return stOut.isEmpty()&&stIn.isEmpty();}
}/*** 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();* boolean param_4 = obj.empty();*/

C++

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和empty为O(1), pop和peek为O(n)

空间复杂度: O(n)

225. 用队列实现栈

思路

队列是先进先出原则,

而栈是先进后出原则

因此,可以使用两个队列来实现栈

可以使用一个队列来实现栈

满足先进后出的方法就是; 入队列之后,就将这个数放到队首

image-20230917184757095

Code

C++

class MyStack {
public:	queue<int> que;MyStack() {}void push(int x) {que.push(x);}int pop() {int size = que.size();size--;while(size--){que.push(que.front());que.pop();}int res = que.front();que.pop();return res;}int top() {return que.back();}bool empty() {return que.empty();}
};/*** Your MyStack object will be instantiated and called as such:* MyStack* obj = new MyStack();* obj->push(x);* int param_2 = obj->pop();* int param_3 = obj->top();* bool param_4 = obj->empty();*/

Java

class MyStack {Queue<Integer> que = new LinkedList<>();public MyStack() {}public void push(int x) {que.add(x);}public int pop() {rePosition();return que.poll();}public int top() {rePosition();int res = que.poll();que.add(res);return res;}public boolean empty() {return que.isEmpty();}public void rePosition(){int size = que.size();size--; // 不包括刚刚添加的数while(size-- > 0){que.add(que.poll());}}
}/*** Your MyStack object will be instantiated and called as such:* MyStack obj = new MyStack();* obj.push(x);* int param_2 = obj.pop();* int param_3 = obj.top();* boolean param_4 = obj.empty();*/

复杂度

  • 时间复杂度: pop为O(n),其他为O(1)
  • 空间复杂度: O(n)
http://www.yayakq.cn/news/105133/

相关文章:

  • 美食网站建设策划书互联网站备案信息查询
  • 云南城市建设职业学院spoc网站建筑公司logo设计
  • 专业网网站建设岳阳网站建设有哪些
  • 金融软件网站建设公司详细论述制作网站的步骤
  • 南宁个人做网站的技校十大吃香专业
  • 纪检监察工作 网站建设建立个公司网站
  • vps服务器怎么做网站广元市利州区建设局网站
  • 国外优秀设计网站大全wordpress 微软
  • 郑州网站高端设计51推广平台
  • 鹿泉网站制作公司文章目录wordpress
  • 建设个人网站可以卖产品吗论坛备案网站名称
  • 菏泽兼职网站建设怎么做百度快照让网站排前面
  • 网站优化年报告三合一建站网站
  • 景区网站开发wordpress 金属 主题
  • 建设企业网站内容什么网站做广告效果好
  • 产看网站权重discuz最新模板
  • 上海网站设计制作报价吴江公司注册
  • 骏驰网站建设做图片的网站都有哪些
  • 开发个app软件要多少钱哈尔滨关键词优化价格
  • 贵州交通建设集团有限公司网站html5模板免费下载
  • 建设网站找哪里用c语言做公司网站
  • 做网站如何对接支付深圳家具定制
  • 西安网站建设开发制作金隅嘉华大厦网站建设公司
  • 庆阳网站设计厂家想学学做网站
  • 网站建设与管理就业网站开发文档需求模板
  • 小米路由器3做网站龙岩市住房和城乡建设局网站
  • 山东网站制作策划网站开发有哪些
  • 北京通信管理局网站备案wordpress首页静态页面
  • 利用花生壳做网站wordpress4.8 php7
  • 北京好用的h5建站网站界面设计基础