首页 > 其他分享 >剑指 Offer 59 - II. 队列的最大值(中等)

剑指 Offer 59 - II. 队列的最大值(中等)

时间:2023-07-31 22:44:23浏览次数:33  
标签:deque 59 Offer back value II que2 MaxQueue

题目:

class MaxQueue {
public:
    deque<int> que1;      //使用两个双端栈(deque和queue不一样,用deque就行)
    deque<int> que2;
    MaxQueue() {

    }
    
    int max_value() {
        return que2.empty()?-1:que2.front();
    }
    
    void push_back(int value) {
        que1.push_back(value);
        while(!que2.empty()&&que2.back()<value){        //que2维护为单调递减栈,栈头为最大值
            que2.pop_back();
        }
        que2.push_back(value);
    }
    
    int pop_front() {
        if(que2.empty())return -1;
        int max=que1.front();
        que1.pop_front();
        if(que2.front()==max){           //如果que1中的弹出值等于que2栈头,那么que2才弹出栈头
            que2.pop_front();
        }
        return max;
    }
};

标签:deque,59,Offer,back,value,II,que2,MaxQueue
From: https://www.cnblogs.com/fly-smart/p/17595189.html

相关文章

  • 字符编码笔记:ASCII,Unicode和UT…
    字符编码笔记:ASCII,Unicode和UTF-8作者:阮一峰今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对......
  • 剑指 Offer 30. 包含min函数的栈(简单)
    题目:classMinStack{public:stack<int>st1;//维护原栈stack<int>st2;//维护最小值的栈/**initializeyourdatastructurehere.*/MinStack(){}voidpush(intx){st1.push(x);......
  • 剑指offer_20230731
    剑指Offer07.重建二叉树题目说明输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。解题思路可以通过前序遍历的数组获取每个子树的根节点,并在中序遍历的数组中找到根节点对应的位置,然后就可......
  • 并行课程 III
    给你一个整数n,表示有n节课,课程编号从1到n。同时给你一个二维整数数组relations记录每门课程的先修课程请你根据以下规则算出完成所有课程所需要的最少月份数:如果一门课的所有先修课都已经完成,你可以在任意时间开始这门课程。你可以同时上任意门课程,请你返回完成所有课......
  • IIS创建网站报错 \\?\C:\Windows\inetsrv\config\applicationHost.config
    ​ ​​编辑​​编辑 现象:IIS创建不了网站,IIS配置没有发生改变 原因:服务器C盘无空间,释放空间后问题解决。​......
  • 代码随想录算法训练营第四天| LeetCode 24. 两两交换链表中的节点 19.删除链表的倒
    24.两两交换链表中的节点     卡哥建议:用虚拟头结点,这样会方便很多。 本题链表操作就比较复杂了,建议大家先看视频,视频里我讲解了注意事项,为什么需要temp保存临时节点。   题目链接/文章讲解/视频讲解:https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%......
  • 力扣---142. 环形链表 II
    给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从0开始)。如果......
  • 45. 跳跃游戏 II
    给定一个长度为n的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意nums[i+j]处:0<=j<=nums[i] i+j<n返回到达 nums[n-1]的最小跳跃次数。生成的测试用例可以到......
  • 2023.7.28 并行课程III
    根据题目要求,可以分析出,需要按照拓扑序上完所有的课。每次上课都需要一定时间,可以同时上任意多门课,要求最少得时间。比如说示例1中的一个拓扑序是123,可以让12并行,因此只需要3+5=8个时间。可以先用拓扑排序,得出拓扑序,然后进行dp(满足拓扑序即可dp)。dp时,对每个节点,令其花费时间为......
  • ascii编码
    1、介绍ASCII(AmericanStandardCodeforInformationInterchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更......