news 2026/7/18 3:39:38

区间M的最小值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
区间M的最小值

主要是是以题目的形式进行讲解

题目如上,

说说一开始的思路,当看到输出最小值内心想到的是小根堆,然后说区间内,这个区间是滑动的,那可以想到滑动窗口

总的来说:滑动窗口 + 递增序列 -> 单调递增队列!

注意队列中存放的是下标,目的是为了维护前m个数,意思就是这个区间内的数属于【i-m,i-1】,当下标小于i-m时,即说明这个数不属于这个区间,需要移除队列

那滑动窗口讲完了,该如何实现递增序列,嘿嘿嘿手动实现嘛,保证队首最小,加入的数也要比队尾小,先删除队尾 再加入新的小的数。同时给大家说明一下:我们实现这个题目时需要注意:先删除不应该在区间的值,再输出最小的值,最后加入新的值。

总结一下注意点:

1.deque存的是下标

2.实现时注意先使区间都是有效值,删掉不符合条件的

3.注意删的是队首还是队尾,加的是队首还是队尾

4.加入值时判断与队尾的大小,比他大就不加了,比他小时,注意先删再加**

代码如下(注意看注释):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

#include<bits/stdc++.h>

using namespace std;

constintN = 2e6+5;

inta[N];

intmain()

{

intn,m;

cin>>n>>m;

for(inti=1;i<=n;i++)

{

cin>>a[i];

}

deque<int>q;

for(inti=1;i<=n;i++)

{

//先删不符合条件的

while(!q.empty() && q.front()<i-m)

{

q.pop_front();//这里是删队首,因为不属于区间内

}

//输出区间内的最小值 ,即队首

if(q.empty())

{

cout<<0<<"\n";

}

else

{

cout<<a[q.front()]<<"\n";//注意:deque内存的是下标,输出时记得用a[]输出

}

//右移窗口,同时维护递增序列

while(!q.empty() && a[q.back()]>a[i])

{

q.pop_back();//这里要先删除再加,否则加了再删会误删a[i],删掉大的主要是维护递增序列

}

q.push_back(i);//将小的放入队尾

}

return0;

}

    版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
    网站建设 2026/7/18 3:38:03

    Flutter3.19与window_manager打造原生级桌面应用

    1. 项目背景与技术选型Flutter3.19window_manager的组合为桌面端开发带来了全新的可能性。这个技术栈的选择并非偶然&#xff0c;而是基于以下几个关键考量&#xff1a;首先&#xff0c;Flutter3.19版本对桌面平台的支持已经相当成熟&#xff0c;特别是在MacOS环境下&#xff0…

    作者头像 李华
    网站建设 2026/7/18 3:37:58

    STM32驱动74HC595控制点阵屏实战指南

    1. 项目概述74HC595作为经典的串入并出移位寄存器&#xff0c;在物联网设备开发中扮演着重要角色。最近在完成一个基于STM32的智能显示终端项目时&#xff0c;我深度使用了这款芯片驱动88点阵屏&#xff0c;积累了不少实战经验。本文将系统梳理74HC595的工作原理、与STM32的硬件…

    作者头像 李华
    网站建设 2026/7/18 3:37:16

    PyTorch模型生产部署:从Notebook到K8s高可用服务的工程化实践

    1. 项目概述&#xff1a;当模型走出Jupyter&#xff0c;真正开始呼吸真实世界的空气“From Notebook to Production: Running ML in the Real World (Part 4)”——这个标题本身就像一句暗号&#xff0c;专为那些在Jupyter里调通了模型、画出了漂亮ROC曲线、却在部署时被生产环…

    作者头像 李华
    网站建设 2026/7/18 3:36:32

    如何部署nfs服务器

    1.服务端IP&#xff1a;172.25.254.100关闭火墙[rootnode1 ~]# systemctl disable --now firewalld #关闭防火墙 [rootnode1 ~]# systemctl mask firewalld #锁定 Created symlink /etc/systemd/system/firewalld.service → /dev/null. 安装nfs服务…

    作者头像 李华
    网站建设 2026/7/18 3:36:08

    Python自动化抢票脚本实战:基于Selenium与反检测策略

    1. 项目概述&#xff1a;为什么我们需要一个“聪明”的抢票脚本&#xff1f; 又到了一票难求的演唱会、音乐节旺季。你定好闹钟&#xff0c;提前十分钟就守在手机或电脑前&#xff0c;手指悬在刷新键上&#xff0c;心跳加速。倒计时结束&#xff0c;你以最快的速度点击&#x…

    作者头像 李华