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

2023-08-06力扣今日四题

链接:

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

题意:

如题,要求O1给出数列的最大值

解:

类似滑动窗口

1 1 2 1 2用双端队列存储成2 2(每次从前面获取最大值,后面插入新数字)也就是第一个2覆盖了前面两个1,第二个2覆盖了一个1

1 1 2 3 2存储成3 2因为在抛弃到3之前3都是队列内最大的,移除前面的和最大值3无关,直到移除3

核心思想,越后面进入队列的数字存在时间越久,存在久的数字可以替换小于它的存在短的数字;移除最大数字前面的数字对最大值没有影响,直到移除最大的数字以后更新成次大数

实际代码:

#include<bits/stdc++.h>
using namespace std;
class MaxQueue
{
public:MaxQueue() =default;//默认构造 int max_value(){if(Max.empty()) return -1;else return Max.front();}//获取最大值 void push_back(int value){qe.push(value);while(!Max.empty()&& value>Max.back()) Max.pop_back();Max.push_back(value);}//压入队列 int pop_front(){if(qe.empty()) return -1;int ret=qe.front();qe.pop();if(ret==Max.front()) Max.pop_front();return ret;}//抛出队列 
private:queue<int>qe;deque<int>Max;
};
int main()
{}

限制:

  • 1 <= push_back,pop_front,max_value的总操作数 <= 10000
  • 1 <= value <= 10^5
http://www.lryc.cn/news/117750.html

相关文章:

  • Kubernetes入门 三、命令行工具 kubectl
  • 18 | 基于DDD的微服务设计实例
  • router和route的区别
  • 每日后端面试5题 第五天
  • BGP基础实验
  • 在excel中整理sql语句
  • Vue中下载不同文件的几种方式
  • Ethernet/ip协议开发记录
  • Spring系列三:基于注解配置bean
  • git的简单介绍和使用
  • uni-app运行微信开发工具小程序,出现× initialize报错
  • UNet Model
  • vue+iviewUi+oss直传阿里云上传文件
  • 算法leetcode|68. 文本左右对齐(rust重拳出击)
  • 基于MATLAB实现小波算法仿真(附上多个完整源码+数据集)
  • 【深度学习注意力机制系列】—— CBAM注意力机制(附pytorch实现)
  • 【资料分享】全志科技T507-H工业核心板规格书
  • Profibus-DP转modbus RTU网关modbus rtu和tcp的区别
  • AlmaLinux 9 安装 Edge 和 Chrome
  • NGINX——负载均衡
  • C#实现端口扫描和执行cmd命令、调用摄像头
  • 【图像恢复】基于交替乘子方法(ADMM)图像恢复算法研究[固定点收敛和应用](Matlab代码实现)
  • Qt 使用QLabel的派生类实现QLabel的双击响应
  • 关于@JSONField的使用
  • Centos7单机部署ElasticSearch
  • js玩儿爬虫
  • 新利好带动 POSE 持续上扬,月内几近翻倍
  • Windows terminal 添加 git bash 解决git中文乱码显示问题
  • C语言实现选择排序
  • unable to write symref for HEAD: Permission denied