首页 > 其他分享 >LeetCode232.栈实现队列

LeetCode232.栈实现队列

时间:2024-03-14 18:22:40浏览次数:21  
标签:LeetCode232 MyQueue 队列 s1 实现 int push top

  • ques:用两个栈实现队列功能
  • ans:与225一样的思路,看完225大佬们的题解之后能很轻松的想出思路,用s1来实现真正模拟队列中的元素顺序,借助s2辅助完成这一排序

  • 代码实现
#include<iostream>
#include<stack>
using namespace std;

class MyQueue {
private:
    stack <int> s1;//s1作为模拟队列的栈,即s1的出栈即为队列出队的顺序
    stack <int> s2;
public:
    MyQueue() {
        
    }
    
    void push(int x) {
        if(s1.size()>0)
        {
            int n = static_cast<int>(s1.size());
            int t = n;
            while(n--)
            {
                s2.push(s1.top());
                s1.pop();
            }
            s1.push(x);
            while(t--)
            {
                s1.push(s2.top());
                s2.pop();
            }
        }
        else
            s1.push(x);
    }

    int pop() {
        int top = s1.top();
        s1.pop();
        return top;
    }
    
    int peek() {
        return s1.top();
    }
    
    bool empty() {
        return s1.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();
 */

 

参考其他人做双队列实现栈的功能时候用到的强制类型转换,static_cast<int>(...)

以及循环控制需要两个变量,即n和t;

以及使用while(n--)来作为循环判断条件(都是和dl学滴~)

while(n--)是先判断循环条件n,再执行自减操作

标签:LeetCode232,MyQueue,队列,s1,实现,int,push,top
From: https://www.cnblogs.com/mingyuer/p/18073654

相关文章

  • 注意!运用表单流程管理可一起实现提质增效
    经常会有客户在我们面前抱怨:到底用什么样的方法和软件,才能实现高效率的办公?其实,大家不必苦恼。因为低代码技术平台服务商流辰信息将会给大家推荐表单流程管理的实用性,它的灵活简便、易操作等优势特点,可以帮助大家实现高效率办公,创造更高市场价值。今天,我们一起来了解表单流程管理......
  • 多线程(代码案例: 单例模式, 阻塞队列, 生产者消费者模型,定时器)
    设计模式是什么类似于棋谱一样的东西计算机圈子里的大佬为了能让小菜鸡的代码不要写的太差针对一些典型的场景,给出了一些典型的解决方案这样小菜鸡们可以根据这些方案(ACM里面叫板子,象棋五子棋里叫棋谱,咱这里叫设计模式),略加修改,这样代码再差也差不到哪里去......
  • Python实现BOA蝴蝶优化算法优化循环神经网络分类模型(LSTM分类算法)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。1.项目背景蝴蝶优化算法(butterflyoptimizationalgorithm,BOA)是Arora等人于2019年提出的一种元启发式智能算法。该算法受到了蝴蝶觅食和交配行为的启发,......
  • Python实现BOA蝴蝶优化算法优化循环神经网络回归模型(LSTM回归算法)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。1.项目背景蝴蝶优化算法(butterflyoptimizationalgorithm,BOA)是Arora等人于2019年提出的一种元启发式智能算法。该算法受到了蝴蝶觅食和交配行为的启发,......
  • C#实现DataTable数据分割处理
    【转自】https://www.cnblogs.com/rongfengliang/p/4385572.html一个简单的使用遍历的方式进行DataTable的拆分 privatestaticList<DataTable>DataTableSplite(DataTabledt,intmodcounts){List<DataTable>list=newList<DataTable>();......
  • 苹果短信,imessage群发,苹果imessage,imessage推信,苹果系统imessage应用实现群发的原
    Apple公司全线在macos与ios两个操作系统上内置了FaceTime与iMessage两个应用。完美替代运营商的短信与电话。并且FaceTime与iMessage的帐号不仅仅与AppleID绑定,同时也与使用这AppleID的手机号码绑定,这样的漏洞自然给无孔不入的群发垃圾信息商们提供了后门。我们的iPhone用户......
  • 容器集群实现多机多卡分布式微调大模型chatglm2-6b(deepseed + LLaMA + NCCL)
    环境信息2台物理机(187.135,187.136),各两张p4显卡,安装好docker=20.10.0,安装好nvidia驱动(driverversion=470.223.02,cudaversion=11.4)构造容器集群(dockerswarm187.136节点作为manager节点,187.135节点作为worker节点)[root@host-136~]#dockerswarminit--advertise-addr......
  • 【2024-完整版】python爬虫 批量查询自己所有CSDN文章的质量分:附整个实现流程
    【2024】批量查询CSDN文章质量分写在最前面一、分析获取步骤二、获取文章列表1.前期准备2.获取文章的接口3.接口测试(更新重点)三、查询质量分1.前期准备2.获取文章的接口3.接口测试四、python代码实现1.分步实现2.批量获取文章信息3.从excel中读取文章url,查询......
  • 实现eventEmmiter,发布-订阅 模式 (on, emit, off)
    /* *@Date:2024-03-1415:46:52 *@Description:Modifyhereplease */interfaceSubscribeEvent{ fn:Function; once:boolean;}classEventEmmiter{ subscribes:Map<string,Array<SubscribeEvent>>; constructor(){  this.subscrib......
  • Python实现ws订阅服务
    一、Python实现ws订阅服务#使用websocket订阅欧易公共频道中的行情频道,以下是已知信息,写出Python代码#地址:"wss://wspap.okx.com:8443/ws/v5/public?brokerId=9999"#请求示例:#{#"op":"subscribe",#"args":[{#"channel":"......