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

用栈实现队列

时间:2024-01-21 18:11:50浏览次数:33  
标签:int 队列 s2 s1 pop 实现 用栈 MyQueue empty

 

 

/*
 * @lc app=leetcode.cn id=232 lang=cpp
 *
 * [232] 用栈实现队列
 */

// @lc code=start
class MyQueue
{
public:
    MyQueue()
    {
    }

    void push(int x)
    {
        s1.push(x);
    }

    int pop()
    {
        if (s2.empty())
        {
            while (!s1.empty())
            {
                s2.push(s1.top());
                s1.pop();
            }
        }
        int val = s2.top();
        s2.pop();
        return val;
    }

    int peek()
    {
        if (s2.empty())
        {
            while (!s1.empty())
            {
                s2.push(s1.top());
                s1.pop();
            }
        }
        return s2.top();

    }

    bool empty()
    {
        return s1.empty() && s2.empty();
    }

private:
    stack<int> s1;
    stack<int> s2;
};

/**
 * 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();
 */
// @lc code=end

 

标签:int,队列,s2,s1,pop,实现,用栈,MyQueue,empty
From: https://www.cnblogs.com/angdh/p/17978101

相关文章

  • uniapp+django登录页面实现
    前后端联动概述以一个简单的登录功能为例说明,uni-app的前后端交互项目地址:效果图前端页面开发项目地址:后端页面开发项目地址:其他参考资料1、Django项目和uni-app项目的创建及项目文件讲解https://blog.csdn.net/qq_55002406/article/details/1287887882、如何将前......
  • 中断机制之通过interrupt实现线程中断停止
    如何停止中断运行中的线程?首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了interrupt实现线程中断停止用isInterrupted判断当前线程是否被中断,用interrupt()设置线......
  • 中断机制之通过AtomicBoolean实现线程中断停止
    如何停止中断运行中的线程?首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了AtomicBoolean实现线程中断演示通过修改共享变量的方式来达到通知的目的从而使目的线程......
  • 中断机制之通过volatile实现线程中断停止
    如何停止中断运行中的线程?首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了volatile实现线程中断演示通过修改共享变量的方式来达到通知的目的从而使目的线程中断......
  • Java实现Excel导入和导出
    目录目录前言1.功能测试1.1测试准备1.2数据导入1.2.1导入解析为JSON1.2.2导入解析为对象(基础)1.2.3 导入解析为对象(字段自动映射)1.2.4导入解析为对象(获取行号)1.2.5导入解析为对象(获取原始数据)1.2.6 导入解析为对象(获取错误提示)1.2.7导入解析为对象(限制字段......
  • 在 SpringBoot 项目中使用 MDC 实现日志 traceId 的统一
    前言在项目中,对于每一次请求,我们都需要一个traceId将整个请求链路串联起来,这样就会很方便我们根据日志排查问题。但是如果每次打印日志都需要手动传递traceId参数,也会很麻烦,MDC就是为了解决这个场景而使用的。注:这里我们使用slf4j+logbacklogback配置logback.xml......
  • P1886 滑动窗口 /【模板】单调队列
    P1886滑动窗口/【模板】单调队列https://www.luogu.com.cn/problem/P1886 思路https://zhuanlan.zhihu.com/p/346354943 Codehttps://www.luogu.com.cn/record/143623041LLn,k;LLa[1000005];deque<LL>maxd,mind;intmain(){cin>>n>>k;......
  • 25new和delete重载实现的对象池应用
    new和delete重载实现的对象池应用在类底层维护一个结构体链表,new和delete重载以避免大量重复的new和delete操作。usingnamespacestd;#include<iostream>staticconstintPOOL_ITEM_SIZE=1000000;template<typenameT>classQueue{public: Queue() { _front=_r......
  • 大模型新篇章:元象XVERSE-Long-256K实现256K超长文本分析
    引言在人工智能的快速发展中,大模型技术始终是推动行业进步的重要力量。特别是在处理长文本上下文方面,长文本技术已成为衡量一个大模型技术成熟度的重要标准。近日,元象科技发布了全球首个256K上下文窗口长度的开源大模型——XVERSE-Long-256K,这一创新举措不仅填补了开源生态的空白,也......
  • Unity下实现跨平台的RTMP推流|轻量级RTSP服务|RTMP播放|RTSP播放低延迟解决方案
    技术背景 2018年,我们开始在原生RTSP|RTMP直播播放器的基础上,对接了Unity环境下的低延迟播放,毫秒级延迟,发布后,就得到了业内一致的认可。然后我们覆盖了Windows、Android、iOS、Linux的RTMP推送、轻量级RTSP服务和RTSP|RTMP播放。目前看,Unity环境下,我们在行业内的延迟几乎是最低的(当......