题目:

队列的最大值。
请定义一个队列并实现函数max得到队列里的最大值,要求函数max、push_back和pop_front的时间复杂度都是O(1)。

题解:

使用队列,操持队列的排序为从大到小的顺序,最大值一直在队头

 class Queue
{
public:
void push_back(const int &num)
{
List.push(num);
while (!maxNum.empty() && maxNum.back() < num)maxNum.pop_back();
maxNum.push_back(num);
}
void pop_front()
{
if (!maxNum.empty() && maxNum.front() == List.front())maxNum.pop_front();
if(!List.empty())List.pop();
}
int getMax()
{
if (!maxNum.empty())return maxNum.front();
return -;
}
private:
queue<int>List;
deque<int>maxNum;
};

剑指offer——69队列的最大值的更多相关文章

  1. 【Java】 剑指offer(59-2) 队列的最大值

      本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 请定义一个队列并实现函数max得到队列里的最大值,要求函数ma ...

  2. 剑指offer——68队列的最大值

    题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6 ...

  3. 剑指offer 59-II 队列的最大值

    题目描述 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value.push_back 和 pop_front 的均摊时间复杂度都是O(1). 若队列为空,pop_ ...

  4. [剑指Offer]59-队列的最大值(题目二待补)

    题目一:滑动窗口的最大值 题目链接 https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788?tpId=13&tqI ...

  5. 剑指offer——滑动窗口的最大值

    给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6, ...

  6. 剑指 Offer 59 - I. 滑动窗口的最大值 + 双指针 + 双端队列

    剑指 Offer 59 - I. 滑动窗口的最大值 Offer_59_1 题目详情 方法一:暴力方法+双指针 package com.walegarrett.offer; /** * @Author ...

  7. 剑指 Offer 59 - II. 队列的最大值--滑动窗口的建模+Deque的基本使用(常用方法)

    剑指 Offer 59 - II. 队列的最大值 题目链接 package com.walegarrett; /** * @Author WaleGarrett * @Date 2020/12/3 1 ...

  8. 【Java】 剑指offer(59-1) 滑动窗口的最大值

      本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值.例 ...

  9. 【剑指offer】59 - I. 滑动窗口的最大值

    剑指 Offer 59 - I. 滑动窗口的最大值 知识点:队列:滑动窗口:单调 题目描述 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值. 示例 输入: nums = [ ...

随机推荐

  1. 从源码导入到github

    http://stackoverflow.com/questions/4658606/import-existing-source-code-to-github If you've got local ...

  2. python作业/练习/实战:生成随机密码

    作业要求1.写一个函数,函数的功能是生成一批密码,存到文件里面 def gen_password(num): #num代表生成多少条密码2.密码复杂度要求 1)长度在,8-16位之间 2)密码必须包括 ...

  3. EF复合主键

    [Key,Column(Order = )] [Key,Column(Order = )]

  4. 轻松理解https,So easy!

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:翟志军 https://showme.codes/2017-02-20/understand-https/ 本文尝试一 ...

  5. TOPO DN 解析

    介绍     有一个算法,是将大量TOPO DN实例解析成结构形式.并依据DN获取对应的数据.本人感觉值得分享.并供大家讨论与优化.     注意:TOPO DN实例的顺序,是被我的其他算法预处理过的 ...

  6. ubuntu安装goland

    安装goland 首先下载goland https://www.jetbrains.com/zh/go/specials/go/go.html?utm_source=baidu&utm_med ...

  7. 2018-8-10-win10-uwp-ping

    title author date CreateTime categories win10 uwp ping lindexi 2018-08-10 19:17:19 +0800 2018-2-13 1 ...

  8. QMap的key也可以是一个结构体类吗?

    QMap<usbsnvidpid, QVector<QString>> USBVIDPIDTIME; USBVIDPIDTIME.insert(m_vidpidsn, time ...

  9. Web.xml配置详解之context-param(转)

    转自:http://blog.csdn.net/liaoxiaohua1981/article/details/6759206 格式定义: <context-param> <para ...

  10. google cloud

    1.win10下安装gcloud SDK 必须设置环境变量CLOUDSDK_PYTHON指向执行文件而不是目录.