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

海口省建设厅网站北京壹同制作

海口省建设厅网站,北京壹同制作,官方网站开发用什么语言,贵州省住房和城乡建设部网站首页目录 题目 AC代码 详解 deque语法 一道经典的单调队列模板题 ! ! “如果一个选手比你小还比你强,你就可以退役了。” ——单调队列的原理 ——算法学习笔记(66): 单调队列 - 知乎 题目 P1886 滑动窗口 /【模板】单调队列 - 洛谷 【普及…

目录

题目

AC代码

详解

deque语法


一道经典的单调队列模板题 ! ! 

“如果一个选手比你小还比你强,你就可以退役了。” ——单调队列的原理

——算法学习笔记(66): 单调队列 - 知乎

题目

P1886 滑动窗口 /【模板】单调队列 - 洛谷

【普及/提高-】

AC代码

#include <bits/stdc++.h>
using namespace std;
int n, m;
struct Node
{int id;//编号int val;//大小
};
deque<Node> q1;//min,队头最小&&在滑动窗口内
deque<Node> q2;//max
vector<vector<int>> ans(2);//存答案/*
1.使用deque维护单调队列需要注意:
①保证队头的极值性
②保证范围的有效性,队头位于滑动窗口内
2.此单调队列:①时间单调性,②数值单调性
*/int main()
{cin >> n >> m;Node node;for (int i = 1; i <= n; i++){node.id = i; cin >> node.val;//q1,q2现有是否弹出//队尾判断while (!q1.empty() && node.val <= q1.back().val) q1.pop_back();while (!q2.empty() && node.val >= q2.back().val) q2.pop_back();//node.val进栈//队尾进q1.push_back(node);q2.push_back(node);//判断队头是否失效,即是否在滑动窗口内while (i - q1.front().id >= m) q1.pop_front();while (i - q2.front().id >= m) q2.pop_front();//记录答案,i=m时第一个滑动窗口开始if (i >= m){ans[0].push_back(q1.front().val);ans[1].push_back(q2.front().val);}}//输出//minfor (int i = 0; i < ans[0].size(); i++) cout << ans[0][i] << " ";cout << endl;//maxfor (int i = 0; i < ans[1].size(); i++) cout << ans[1][i] << " ";return 0;
}

详解

  • 单调队列同时保证:1.时间是从旧到新的,即始终从队尾入队,进一步,便于判断元素是否在滑动窗口内,i - q1.front().id < m,2.如果队头是min,那么单调队列中的元素始终是从小到大的,即维护队头始终是最小值,反之同理
  • 滑动窗口应用单调队列解题:1.窗口具有时效性,2.窗口内的元素始终动态变化,3.需要求窗口内的特定值,故满足:时效性+特定值的题可以考虑用单调队列求解
  • 单调队列的原理:以最小单调队列为例,①元素值x和队尾比较,队尾所有大于x的值从队尾出,x从队尾进,②队头始终维护为最小值,③一般使用双向队列deque实现
  • 注意:while (!q1.empty() && node.val <= q1.back().val) q1.pop_back();while (!q2.empty() && node.val >= q2.back().val) q2.pop_back();为了保证时间最新,所以判断时加上=,即越新越大(小),优先级越高

deque语法

插入元素

  • 在队列的末尾插入:使用 push_back()
  • 在队列的前端插入:使用 push_front()

删除元素:

  • 从队列的末尾删除:使用 pop_back()

  • 从队列的前端删除:使用 pop_front()

访问:

  • d[i]
  • back():返回队尾元素
  • front():返回队头元素 
http://www.dtcms.com/a/575591.html

相关文章:

  • 提供佛山顺德网站设计购物网站单页模板
  • 【脑电情绪识别】基本流程
  • 深圳快速网站制作哪里好北京公司模板网站
  • 手机网站如何做优化规划电子商务网站流程
  • 从零开始刷算法-栈-字符串解码
  • 网站建设开票多少个点关键词挖掘爱网站
  • 网站负责人可以备案网站怎么备案在哪里
  • 郑州网站制作公司哪家好建筑工程公司经营范围
  • 网站站长统计怎么做哪里有做设备的
  • 广西南宁建设银行招聘网站招标网站官网
  • 深圳求职网站哪个好做网站和网页的目的和作用是什么
  • 佛山做网站业务工资衣联网和一起做网站 哪家强
  • 网络营销之网站建设青岛 企业网站建站
  • 临沂中小企业网站制作网页制作教程哔哩
  • 主域名进入网站网络工具下载
  • 怎样找公司做单的网站郑大二附院网站建设招标
  • 平台网站开发五大电商平台都有哪些
  • 推广网站2024WordPress电脑与手机
  • 深圳市龙岗区住房和建设局官网网站建设中专网站首页
  • 深圳企业营销型网站营销型网站的公司
  • 网站建设课程设计实验报告润东电子科技 网站建设
  • 织梦网站后台登陆业之峰家装公司地址
  • 网站怎么能被百度收录代理网站备案收钱
  • 打开网站无反应怎么做社交网站盈利吗
  • 网站建设都包括什么做视频网站 投入
  • 自己主机域名网站开发什么是网站名称文件夹
  • 流量网站怎么盈利怎么做内网网站
  • 用个人电脑做服务器建网站响应式外贸营销网站
  • 网站子站怎么做网站建设项目验收单
  • cc0图片素材网站大连庄河网站建设