poj2823滑动窗口
2024-08-26 00:59:01
这个是单调队列的入门题目。值得注意的一点是队列中的数的index是单调递增的,所以从队首删除的时候从前向后循环找到第一个index满足>= i - k + 1条件的元素作为队首元素就可以了,这也是我一开始没想明白的一点。
//#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n, k, a[], q[];
void max_value()
{
int front = , end = ;
for (int i = ; i < n; i++)
{
while (a[q[end]] <= a[i] && end >= front)
{
end--;
}
q[++end] = i;
while (q[front] < i - k + && front < end)
{
front++;
}
if (i >= k - )
printf("%d ", a[q[front]]);
}
puts("");
}
void min_value()
{
int front = , end = ;
for (int i = ; i < n; i++)
{
while (a[q[end]] >= a[i] && end >= front)
{
end--;
}
q[++end] = i;
while (q[front] < i - k + && front < end)
{
front++;
}
if (i >= k - )
printf("%d ", a[q[front]]);
}
puts("");
}
int main()
{
cin >> n >> k;
for (int i = ; i < n; i++)
{
scanf("%d", &a[i]);
}
min_value();
memset(q, , sizeof(q));
max_value();
//system("pause");
return ;
}
最新文章
- js进阶
- usaco 2010年3月银组题解
- 收藏一些python的小技能
- ArcEngine下投影坐标和经纬度坐标的相互转换
- Win7任务计划自由预设系统定时自动关机
- [原创]C语言利用pcre正则表达式库
- Context Switch Definition
- 使用JasperReport+iReport进行Web报表开发
- PXE高效能批量网络装机
- pycharm提示This inspection detects instance attribute definition outside __init__ method
- MyEvent.SetEvent; // 同步信号置位
- 23-新建maven 项目
- JSONP简单例子
- php生成文字图片效果
- sql prompt 不能用
- Selenium 方法封装 一
- 20145312 《Java程序设计》第2周学习总结
- 在写一个iOS应用之前必须做的7件事(附相关资源)
- CSS 经典三列布局
- 虚拟机如何设置U盘启动项
热门文章
- 操作 AutoIT:界面与自动化操作结合来简化日常劳动: .Net Reactor验证License,设置License,创建License,截图AutoIt自动化实现。(六)
- 深入理解java虚拟机---->;java内存区域与内存溢出异常
- Spring 注释标签@Resource @Autowired 和@Inject的区别
- bzoj4004
- js的常用正则表达式
- IReport制作报表——日期时间显示格式
- virtualBox中的centOS虚拟机硬盘扩容
- Java SE ,Java EE和Java ME 的区别
- HDOJ-2048
- myeclipse 重新关联项目和svn