数据结构-单调队列

数据结构-单调队列

滑动窗口

时间复杂度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)

相关推荐
感哥4 小时前
C++ 多态
c++
沐怡旸11 小时前
【底层机制】std::string 解决的痛点?是什么?怎么实现的?怎么正确用?
c++·面试
NAGNIP12 小时前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
美团技术团队13 小时前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
River41614 小时前
Javer 学 c++(十三):引用篇
c++·后端
感哥17 小时前
C++ std::set
c++
Fanxt_Ja17 小时前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下17 小时前
最终的信号类
开发语言·c++·算法
茉莉玫瑰花茶18 小时前
算法 --- 字符串
算法
博笙困了18 小时前
AcWing学习——差分
c++·算法