题解报告:P1886 滑动窗口 /【模板】单调队列(单调队列)

简介: 算法

链接


题意:11.png

思路:

开两个单调队列找最大值和最小值

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+100;
int a[maxn];
deque<int >m1;
int main()
{
    int n,k,i,j;
    scanf("%d%d",&n,&k);
    for(i=1;i<=n;i++){
        scanf("%d",&a[i]);
    }
    for(i=1;i<=n;i++){
        while(m1.size()&&a[i]<a[m1.back()]){
            m1.pop_back();
        }
        m1.push_back(i);
        while(i-k>=m1.front()){
            m1.pop_front();
        }
        if(i>=k)
        printf("%d ",a[m1.front()]);
    }
    printf("\n");
    m1.clear();
    for(i=1;i<=n;i++){
        while(m1.size()&&a[i]>a[m1.back()]){
            m1.pop_back();
        }
        m1.push_back(i);
        while(i-k>=m1.front()){
            m1.pop_front();
        }
        if(i>=k)
        printf("%d ",a[m1.front()]);
    }
    return 0;
}
相关文章
|
8月前
|
设计模式 人工智能 API
Cursor 上线最新 AI 模型 Claude 3.7 Max:200k上下文+200次工具调用!史上最强代码助手硬核上线
Claude 3.7 Max 是 Cursor 推出的最新 AI 模型,支持 200k 上下文窗口和 200 次工具调用,专为复杂代码任务设计,适合硬核开发者和大型项目。
796 6
Cursor 上线最新 AI 模型 Claude 3.7 Max:200k上下文+200次工具调用!史上最强代码助手硬核上线
clion中cmake配置含义
clion中cmake配置含义
352 0
|
网络协议 Ubuntu Linux
在Linux中,如何配置网络?
在Linux中,如何配置网络?
|
定位技术 图形学
地心地固坐标系(ECEF)与站心坐标系(ENU)的转换
地心地固坐标系(ECEF)与站心坐标系(ENU)的转换
878 0
|
SQL HIVE UED
【Hive SQL 每日一题】分析电商平台的用户行为和订单数据
作为一名数据分析师,你需要分析电商平台的用户行为和订单数据。你有三张表:`users`(用户信息),`orders`(订单信息)和`order_items`(订单商品信息)。任务包括计算用户总订单金额和数量,按月统计订单,找出最常购买的商品,找到平均每月最高订单金额和数量的用户,以及分析高消费用户群体的年龄和性别分布。通过SQL查询,你可以实现这些分析,例如使用`GROUP BY`、`JOIN`和窗口函数来排序和排名。
1194 2
|
安全 Python
使用eval函数需要注意哪些方面
使用eval函数需要注意哪些方面
420 0
|
机器学习/深度学习 传感器 算法
基于混沌系统logistic实现图像加密,解密附matlab代码
基于混沌系统logistic实现图像加密,解密附matlab代码
|
存储 安全 Java
【案例实战】SpringBoot整合阿里云文件上传OSS
【案例实战】SpringBoot整合阿里云文件上传OSS
12380 2
【案例实战】SpringBoot整合阿里云文件上传OSS
|
Java
LogBack配置文件使用示例
LogBack配置文件使用示例
499 0
洛谷题单P3613---寄包柜
洛谷题单P3613---寄包柜
232 0