数据结构-单调队列

数据结构-单调队列

滑动窗口

时间复杂度O(n)

1.滑动窗口中的最大值

C++ 复制代码
deque<int> d;//数组nums[1-n],窗口大小为k
for(int i=1;i<=n;i++)
{
    while(!d.empty()&&d.front()+k<=i) d.pop_front();
 	while(!d.empty()&&nums[d.back()]<=nums[i]) d.pop_back();   
    d.push_back(i);
    if(i>=k) printf("%d",d.front());
}

2.滑动窗口中的最小值

C++ 复制代码
deque<int> d;//数组nums[1-n],窗口大小为k
for(int i=1;i<=n;i++)
{
    while(!d.empty()&&d.front()+k<=i) d.pop_front();
 	while(!d.empty()&&nums[d.back()]>=nums[i]) d.pop_back();   
    d.push_back(i);
    if(i>=k) printf("%d",d.front());
}

P1886 滑动窗口 /【模板】单调队列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

相关推荐
鸡鸭扣14 分钟前
leetcode hot100:解题思路大全
数据结构·python·算法·leetcode·力扣
虾球xz16 分钟前
游戏引擎学习第294天:增加手套
c++·学习·游戏引擎
龙湾开发37 分钟前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 13.几何着色器(二)爆炸效果&修改图元类型
c++·笔记·学习·3d·图形渲染·着色器
顾子茵39 分钟前
游戏开发实战(一):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
python·算法·游戏
ALex_zry1 小时前
C++ Kafka客户端(cppkafka)安装与问题解决指南
开发语言·c++·kafka
黑牛先生1 小时前
C++ 回调函数
开发语言·c++
laimaxgg1 小时前
高并发内存池|二、Common
c++·性能优化
被AI抢饭碗的人1 小时前
算法题(150):拼数
数据结构·算法
知识漫步1 小时前
代码随想录算法训练营第60期第三十九天打卡
算法
June`1 小时前
专题五:floodfill算法(太平洋大西洋水流问题)
c++·算法·leetcode·深度优先·剪枝