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

算法练习第六十四天

LCR 184. 设计自助结算系统 - 力扣(LeetCode)

总结:利用一个双端维护队列一个往后递减的队列,对头是最大值,每次进入一个新值时就一直和队尾元素比较将比新的值小的数排出,这样能保证留在队列中的数都是会对最大值产生影响的数,而当主队列中将要排出的数与双端队列对头数相等时则也要将双端队列队头数排出,否则会对主队列中最大的数产生影响。

代码:

class Checkout {queue<int> que;deque<int> d;public:Checkout() {}int get_max() {if(d.empty()){return -1;}return d.front();}void add(int value) {while(!d.empty() && value >= d.back()){d.pop_back();}d.push_back(value);que.push(value);}int remove() {if(que.empty()){return -1;}int temp = que.front();if(temp == d.front())d.pop_front();que.pop();return temp;}
};

http://www.lryc.cn/news/174983.html

相关文章:

  • 安卓系列机型 框架LSP 安装步骤 支持多机型 LSP框架通用安装步骤【二】
  • 实现一个宽高自适应的正方形
  • shell脚本命令
  • Vue2023 面试归纳及复习(2)
  • idea 本地项目上传到 Git 步骤
  • 【从0学习Solidity】41. WETH
  • 微信小程序的无限瀑布流写法
  • 前有CAP理论,后有BASE理论,分布式系统理论基石
  • HTTP、TCP、SOCKET三者之间区别和原理
  • flutter项目中常用第三方模块
  • Android 混淆使用及其字典混淆(Proguard)
  • laravel 阿里云短信发送
  • 算法----LRU缓存机制
  • 基于springboot+vue的旅游系统(前后端分离)
  • 什么是堆栈和队列?如何实现它们?
  • 编译器自动生成的构造函数
  • SpringSecurity - 认证与授权、自定义失败处理、跨域问题、认证成功/失败处理器
  • 自定义映射resultMap
  • Android修行手册 - Android Studio去掉方法参数提示、变量类型提示、方法引用Usage提示
  • 【车载开发系列】ECU Application Software程序刷新步骤
  • inject和provide的使用
  • 2023年中国研究生数学建模竞赛D题
  • Unity制作曲线进度条
  • 面试:C++ 11 智能指针
  • 设计模式——3. 抽象工厂模式
  • vscode 无法使用 compilerPath“D:.../bin/arm-none-eabi-g++.exe”解析配置。
  • Vue.js入门模板语法[上] 及Vue.js实现购物车---详细讲解
  • windows下gvim的配置
  • 基于复旦微的FMQL45T900全国产化ARM开发开发套件(核心板+底板)
  • Leetcode Top100(23)环形链表