E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
---单调队列
Python数据结构与算法篇(九)--单调栈与
单调队列
1单调栈1.1介绍栈(stack)是很简单的一种数据结构,先进后出的逻辑顺序,符合某些问题的特点,比如说函数调用栈。单调栈实际上就是栈,只是利用了一些巧妙的逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递增或单调递减)。用简洁的话来说就是:单调栈就是栈内元素单调递增或者单调递减的栈,单调栈只能在栈顶操作。听起来有点像堆(heap)?不是的,单调栈用途不太广泛,只处理一种典型的问题,叫做Ne
长路漫漫2021
·
2023-10-13 02:20
Algorithms
and
Data
Structures
LC
and
PAT
单调栈
单调队列
数据结构
Python
LeetCode
单调栈 /
单调队列
单调栈/
单调队列
一、单调栈模板1、Leetcode155.最小栈(简单)2、Leetcode496.下一个更大元素I(简单)3、Leetcode739.每日温度(中等)4、Leetcode42.接雨水(
肆呀
·
2023-10-13 02:44
数据结构
队列
数据结构
栈
算法
P1886 滑动窗口 /【模板】
单调队列
题目:P1091[NOIP2004提高组]合唱队形-洛谷|计算机科学教育新生态(luogu.com.cn)n位同学站成一排,音乐老师要请其中的�−�n−k位同学出列,使得剩下的�k位同学排成合唱队形。合唱队形是指这样的一种队形:设�k位同学从左到右依次编号为1,2,1,2,…,�,k,他们的身高分别为�1,�2,t1,t2,…,��,tk,则他们的身高满足�1��+1>t1ti+1>…>��(1≤
hz2.0
·
2023-10-12 20:24
算法
数据结构
c++
滑动窗口的最大值 -
单调队列
样例输入:[2,3,4,2,6,2,5,1],k=3输出:[4,4,6,6,6,5]2、分析
单调队列
,队列中的元素单减队列中保存的是元素的
dan_zhoudan
·
2023-10-12 16:28
LeetCode
滑动窗口的最大值
-
单调队列
队列
数据结构
滑动窗口的最大值
单调队列
滑动窗口最大值(Hard)-双端队列之
单调队列
239.滑动窗口最大值给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例1:输入:nums=[1,3,-1,-3,5,3,6,7],k=3输出:[3,3,5,5,6,7]解释:滑动窗口的位置最大值--------------------[13-1]-3536731[3-1-
金州饿霸
·
2023-10-12 16:22
leetcode刷题日记
算法
数据结构
leetcode
1.
单调队列
--滑动窗口
队列是一个先进先出的数据结构,只支持单方面输入和单方面输出数组模拟队列#includeusingnamespacestd;//在队列中从队尾入,队头出constintN=1e5+10;intq[N];inthh=0;//定义队头inttt=-1;//定义队尾//区间为[hh,tt]/**输出(弹出)>m;while(m--){cin>>op;//从队尾插入一个数据if(op=="push"){ci
ztjou.st
·
2023-10-12 16:17
2.C++数据结构
算法
c++
数据结构
栈与队列:
单调队列
解决滑动窗口最大值
栈与队列:
单调队列
解决滑动窗口最大值设计
单调队列
的时候,pop,和push操作要保持如下规则:pop(value):如果窗口移除的元素value等于
单调队列
的出口元素,那么队列弹出元素,否则不用任何操作
代码拌饭饭更香
·
2023-10-12 15:41
数据结构与算法
队列
数据结构
算法
栈
滑动窗口最大值(
单调队列
)
注:题目:给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。最终返回滑动窗口中的最大值。示例1:输入:nums=[1,3,-1,-3,5,3,6,7],k=3输出:[3,3,5,5,6,7]解释:滑动窗口的位置最大值--------------------[13-1]-3536731[3-1-3]53
TABE_
·
2023-10-12 15:08
c语言
c++
leetcode
单调队列
【数据结构-队列 二】【
单调队列
】滑动窗口最大值
本篇Blog的主题是【
单调队列
】,使用【队列】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为:目标公司+最近一年+出现频率排序,由高到低的去牛客TOP101去找,只有两个地方都出现过才做这道题
存在morning
·
2023-10-12 15:06
#
队列
数据结构
Acwing算法基础课-数据结构-模板习题
目录一、链表1.单链表2.双链表二、栈1.模拟栈2.表达式求值3、单调栈三、队列1.模拟队列数组模拟:queueSTL:2、
单调队列
滑动窗口四、KMPkmp字符串五、Trie1.Trie字符串统计2.最大异或对六
Yang 丶。
·
2023-10-12 09:00
c++
c语言
线性dp+
单调队列
题目:洛谷P5858「SWTR-03」GoldenSword看完题,就感觉是用dp解决,和背包问题有点像。如果简单地用f[i]表示放入第i种原料时宝剑的最大耐久度,显然不满足无后效性,因为对于一个耐久度是负数的材料,它需要锅里的材料尽可能少;反之对于大耐久度的材料,它需要锅里的材料尽可能多。如果遇上负耐久的一股脑的全拿走,后面有大的正耐久度的材料,总耐久度就不大了;如果一直不取,后面来一个负的大耐
乔治yuanbo
·
2023-10-11 23:20
一道题学会二分+前缀和+双指针+
单调队列
+RMQ+线段树,真正实现一题多解
求区间最大值+求最短满足条件的区间的总结用到的算法有:二分前缀和双指针
单调队列
RMQ线段树1题目链接:https://ac.nowcoder.com/acm/contest/11229/D来源:牛客网牛牛参加了牛妹的派对
背书包的小新
·
2023-10-11 19:47
算法
数据结构
[SDOI2012]任务安排 BZOJ2726 斜率优化+二分查找
网上的题解...状态就没有一个和我一样的...这让我有些无从下手...分析:我们考虑,正常的斜率优化满足x(i)单调递增,k(i)单调递增,那么我们就可以只用维护一个
单调队列
满足对于当前的x(i)有最小值即可
初仔仔
·
2023-10-11 19:43
数据结构与算法
Friends and Subsequences 题解(st表+二分 or
单调队列
)
题目链接题目大意给你两个长度为n(2e5)的数组a和数组b,要你求有多少个区间区间满足下列式子即有多少个字串,使得a字串的最大值等于b字串中的最小值st表+二分首先你可以固定左端点,然后你会发现右端点变大时,a数组的最大值是非严格单调递增,而b数组的最小值是非严格单调递减的。所以就很容易想到去二分查找.枚举左端点,查找右端点。你会发现右端点可能是一段区间,然后我就不知道咋做了,其实就是两次二分就行
_hunxuewangzi
·
2023-10-11 18:40
单调队列和单调栈
倍增算法
CF645C Enduring Exodus 题解
题目:CF645CEnduringExodus双指针-
单调队列
-二分这题有很多做法,
单调队列
/双指针+二分这里讲一个最简单的,既不用双指针也不用
单调队列
首先,输入时我们把可以住的房间都给筛出来,并储存下它们的位置然后
PYL2077
·
2023-10-11 18:36
#Codeforces
题解
双指针
单调队列
二分查找
单调队列
&单调栈
就是一些很神奇的数据结构A:最大矩形题目:给一个直方图,求直方图中的最大矩形的面积。例如,下面这个图片中直方图的高度从左到右分别是2,1,4,5,1,3,3,他们的宽都是1,其中最大的矩形是阴影部分。input:输入包含多组数据。每组数据用一个整数n来表示直方图中小矩形的个数,你可以假定1#includeusingnamespacestd;constintN=100000+50;longlongm
大家好我是阿凉
·
2023-10-10 23:40
式子表达ds类——多用位置/值域表示未知数+区间覆盖转区间加:CF407E
www.luogu.com.cn/problem/CF407E多用位置/值域表示未知数推出的式子中nnn表示长度,应该直接换成r−l+1r-l+1r−l+1区间覆盖转区间加推出的式子有mx,mnmx,mnmx,mn,朴素思路是用
单调队列
Qres821
·
2023-10-10 22:27
线段树
数据结构
【算法笔记】滑动窗口最大值
问题分析可使用
单调队列
解决问题(java中使用LinkedList来实现
单调队列
),队列从头到尾是从大到小的,那么队头元素就是需要返回的最大值,只需每次让队头弹出就行。
rookieWai
·
2023-10-10 12:48
算法
队列
算法
java
数据结构
leetcode
代码随想录算法训练营第十三天|栈与队列part3
●239.滑动窗口最大值自己实现
单调队列
,然后遍历数组。●347.前K个高频元素意思理解了,但是代码写不出来。●总结
ziyego
·
2023-10-09 23:16
数据结构
day-13 代码随想录算法训练营(19) 栈和队列part03 已二刷
239.滑动窗口最大值分析:看数据正常求最大值必然超时思路:双端队列构成
单调队列
classSolution{private:classMyQueue{//
单调队列
public:dequeque;voidpop
djykkkkkk
·
2023-10-09 23:33
#
代码随想录算法训练营(19)
算法
数据结构
leetcode
洛谷 P1638:逛画展 ←
单调队列
【题目来源】https://www.luogu.com.cn/problem/P1638https://www.acwing.com/problem/content/653/【题目描述】博览馆正在展出由世上最佳的M位画家所画的图画。wangjy想到博览馆去看这几位大师的作品。可是,那里的博览馆有一个很奇怪的规定,就是在购买门票时必须说明两个数字,a和b,代表他要看展览中的第a幅至第b幅画(包含a和
hnjzsyjyj
·
2023-10-09 16:07
信息学竞赛
#
队列
单调队列
单调队列
---数据结构与算法
简介队列也是一种受限制的线性表和栈相类似,栈是先进后出,而队列是先进先出,就好像一没有底的桶,往里面放东西,如图在这里也是用数组来实现队列,用数组实现的叫做顺序队列队列的数组模拟constintN=1000010;//在队尾插入元素队头弹出元素intq[N],hh,tt=-1;//hh代表队头tt代表队尾//插入q[++tt]=x;//弹出hh++;//判断队列是否为空if(hh=a[y]并且x>
不是颜
·
2023-10-09 13:02
数据结构
数据结构
c++
算法
(周赛t4) 6143. 预算内的最多机器人数目
6143.预算内的最多机器人数目
单调队列
维护滑动窗口中chargeTimes的最大值,二分枚举区间大小。
来到了没有知识的荒原
·
2023-10-07 15:21
AcWing 299. 裁剪序列
题目链接:裁剪序列知识点:动态规划,
单调队列
,multiset,贪心,双指针分析首先使用闫氏DP分析法,状态表示:集合:f[i]表示所有前i个数的合法划分方案的集合。属性:最小值。
Spring.A
·
2023-10-07 07:18
动态规划
算法
c++
数据结构总结
数据结构相关博文单链表数组模拟单链表-CSDN博客双链表数组模拟双链表-CSDN博客栈及单调栈数组模拟栈以及单调栈-CSDN博客队列及
单调队列
数组模拟队列以及
单调队列
-CSDN博客KMPKMP详细算法思路
人生导师yxc
·
2023-10-07 06:35
算法
数据结构
数据结构
算法
环路运输,《算法竞赛进阶指南》,
单调队列
优化dp,滑动窗口求最大值,环形与后效性处理
289.环路运输-AcWing题库在一条环形公路旁均匀地分布着N座仓库,编号为1∼N,编号为i的仓库与编号为j的仓库之间的距离定义为dist(i,j)=min(|i−j|,N−|i−j|),也就是逆时针或顺时针从i到j中较近的一种。每座仓库都存有货物,其中编号为i的仓库库存量为Ai。在i和j两座仓库之间运送货物需要的代价为Ai+Aj+dist(i,j)。求在哪两座仓库之间运送货物需要的代价最大。输
Landing_on_Mars
·
2023-10-07 04:17
#
区间dp
环形结构上的动态规划
思维
算法
2021.01.20【NOIP提高B组】总结
T1:天天爱跑步没花什么时间打,就打了几个表,25分水到了正解没听懂T2:换教室考试嫌题面太长,没有打正解就小小DP,后悔考试不打T3:蚯蚓妙极了,考试时用了堆,结果55分T掉了正解,三个
单调队列
总结:
zhy_Learn
·
2023-10-06 20:21
总结
队列
queue
第二章 数据结构(一)链表、栈、队列、单调栈、
单调队列
、KMP
1.单链表用数组模拟链表:单链表、双链表用e[i]表示第i个节点的值,ne[i]表示第i个节点下一个节点的下标。e[0]=3,ne[0]=1;…e[3]=9,ne[3]=-1.e和ne都是整数数组,空节点的下标用-1来表示,head表示第一个节点的下标。//head表示头节点的下标//e[N]表示节点i的值//ne[i]表示节点i下一个节点的下标//idx存储当前已经用到了哪个点(尾节点的下一点,
wulalalalalalalal
·
2023-10-06 13:36
算法
链表
数据结构
算法
算法基础值之单链表、双链表、栈、队列、单调栈、
单调队列
以及KMP
2.2在一个节点的右边插入一个点2.3在一个节点的左边插入一个点2.4删除节点2.5代码3.栈3.1表达式求值4.队列5.考试考记忆力与自制力6.单调栈6.1考点6.2暴力做法6.3优化算法6.4代码7.
单调队列
素位明哲
·
2023-10-06 13:35
算法基础
算法
链表
数据结构
【算法基础课】数组模拟栈、队列
文章目录一、数组模拟栈1.思路2.代码模板3.进阶:单调栈二、数组模拟队列1.思路2.代码模板3.进阶:
单调队列
一、数组模拟栈1.思路用数组模拟栈,可以帮助我们理解栈的本质。
SuperWiwi
·
2023-10-06 13:05
OJ刷题
AcWing算法基础课 第二讲数据结构小结(持续更新中)
目录一、链表介绍单链表介绍初始化操作链表头插入操作删除操作任意位置插入操作应用双链表介绍初始化操作插入操作删除操作应用二、栈栈含义插入操作删除操作应用单调栈含义应用三、队列队列含义应用
单调队列
含义应用四
StarHui0001
·
2023-10-06 09:05
AcWing基础算法
算法
c++
P4544 [USACO10NOV] Buying Feed G (
单调队列
dp
#includeusingnamespacestd;usingVI=vector;usingll=longlong;intk,e,n;structshop{llx,f,c;booloperator>k>>e>>n;for(inti=1;i>s[i].x>>s[i].f>>s[i].c;}sort(s+1,s+1+n);memset(dp,2,sizeofdp);dp[0][0]=0;for(int
stay fool
·
2023-10-06 08:06
dp
算法
动态规划
图论
2021-11-16刷题
剑指Offer59-I.滑动窗口的最大值这个题是昨天59-II的类似的题,正好今日复习;找最大值--动归、单调栈、
单调队列
剑指Offer38.字符串的排列该题跟全排列II完全是一样的,只不过一个是数字,
偶尔上头
·
2023-10-05 23:08
代码随想录算法训练营第23期day12| 239. 滑动窗口最大值 、347. 前K个高频元素
、(leetcode239)滑动窗口最大值jiao二、(leetcode347)前K个高频元素优先级队列与大小顶堆一、(leetcode239)滑动窗口最大值jiao力扣题目链接状态:待回顾,想不到啊
单调队列
维护队列里的元素设计
单调队列
的时候
weixin_42179093
·
2023-10-05 20:06
代码随想录二刷
算法
代码随想录 Day10 栈与队列 LeetCode T239 滑动窗口的最大值 T347 前K个高频元素
简要介绍一下
单调队列
和优先级队列的不同元素顺序的处理:
单调队列
中,元素的顺序是单调的,也就是说,队列中的元素按照特定的单调性(递增或递减)排列。
qiuqiushuibx
·
2023-10-05 19:08
代码随想录
leetcode
算法
java
Balanced Playlist(
单调队列
)
题目链接#includeusingnamespacestd;constintmaxn=3e5+1;intn,a[maxn],q[maxn],ans[maxn],vis[maxn],maxx=0,minn=1e9+100;intmain(){scanf("%d",&n);for(inti=1;ia[i]*2)//从前往后遍历队列内的元素ans[vis[now]]=i-vis[now],now++;}
为什么他们cf写的这么快
·
2023-10-04 23:46
单调栈/单调队列
Leetcode--Java--239. 滑动窗口最大值
样例描述思路
单调队列
(用双端队列实现)O(nlogk)核心思路:维护存储下标的
单调队列
,用下标范围来模拟滑动窗口本题双端队列是左边头,右边尾,整体向右边移动。
外滩卷王
·
2023-10-03 22:43
Leetcode
单调队列
双端队列
下标模拟滑动窗口
力扣第239题 c++滑动窗口经典题
单调队列
题目239.滑动窗口最大值困难提示队列数组滑动窗口
单调队列
堆(优先队列)给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。
冷yan~
·
2023-10-03 08:19
leetcode
数据结构
算法
c++
leetcode
滑动窗口
单调队列
堆
优先队列
斜率优化DP
一.考虑如下DP方程1.m为常数,s表示数组前缀和2.化简可得3.观察式子可知,若想dp[i]更小,则需要更小4.因此dp方程转换为5.令y等于,k等于,x等于6.又因为递增,因此用一个
单调队列
维护凸包即可二
scanner___yw
·
2023-10-01 22:13
动态规划
算法
[题]宝物筛选 #
单调队列
优化
五、宝物筛选(洛谷P1776)题目链接好家伙,找到了一个之前学习多重背包优化时的错误……之前记的笔记还是很有用的……#includeusingnamespacestd;constintN=1e5+10;intf[N];intn,m;intv,w,s;intlim;inthead,tail;structQ{//位置,对应的底数(basenumber=basenb)intpos,bn;}q[N];//
Y.YL
·
2023-10-01 03:41
算法
数据结构
c++
题
[题]修剪草坪 #
单调队列
优化
题目洛谷上的题目Acwing上的题目根据y总的一波分析,我们得出……公式就是一切……所以,我要学会推公式……推公式……公式……#includeusingnamespacestd;typedeflonglongll;constintN=1e5+10;intn,m;lls[N];llf[N];intq[N];llg(inti){returnf[i-1]-s[i];}intmain(){scanf("%
Y.YL
·
2023-10-01 03:41
c++
算法
题
[题]跳房子 #
单调队列
优化(伪)
题目洛谷题目ACwing题目放弃
单调队列
优化了,又长又臭有难搞,还不如直接剪枝来得快。
Y.YL
·
2023-10-01 03:10
算法
c++
题
单调队列
- 滑动窗口
154.滑动窗口-AcWing题库O(1)求窗口中的最大值/最小值#include#defineIOSios::sync_with_stdio(0);cin.tie(0);cout.tie(0);#defineendl'\n'usingnamespacestd;typedefpairPII;typedeflonglongll;typedeflongdoubleld;constintN=100001
泠楠子
·
2023-10-01 02:31
模板
c++
算法
【
单调队列
】 239. 滑动窗口最大值
239.滑动窗口最大值解题思路计算每一个滑动窗口的最大值关键在于借助
单调队列
实现窗口对于
单调队列
尾部添加元素头部删除元素添加元素操作:从尾部开始循环对比删除比当前元素小的元素获取最大值元素直接获取头部元素删除元素操作直接删除头部元素
luzhoushili
·
2023-10-01 01:06
#
Leetcode
java
算法
数据结构
Leetcode刷题笔记——剑指offer II (四)【队列、树】
目录队列剑指OfferII041.滑动窗口的平均值(
单调队列
)剑指Offer59-I.滑动窗口的最大值树树的存储(先序)剑指OfferII048.序列化与反序列化二叉树BFS遍历剑指OfferII043
Deep_My
·
2023-09-30 20:28
leecode刷题
leetcode
算法
数据结构
单调队列
-力扣-239. 滑动窗口最大值
题目链接滑动窗口最大值给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例1:输入:nums=[1,3,-1,-3,5,3,6,7],k=3输出:[3,3,5,5,6,7]解释:滑动窗口的位置最大值[13-1]-3536731[3-1-3]5367313[-1-35]3675
dailinqing1984
·
2023-09-26 18:12
Python
算法
leetcode
算法
职场和发展
Day9 数组模拟双向链表 数组模拟栈、队列 单调栈 滑动窗口(
单调队列
) KMP
数组模拟单链表其实就是链式前向星只不过是多条链而已双向链表的话,只需要多做几步即可注意idx的起点上一个单链表中起始是0,那么第k个就是k-1现在idx起始时1,第k个就是k+1传送门#includeusingnamespacestd;constintN=1e5+10;intl[N],r[N],val[N],idx;voidadd(intk,intx){val[idx]=x;r[idx]=r[k]
离开那天
·
2023-09-26 15:30
日更学习
【算法系列】数据结构,包括链表、双向链表、栈、队列、并查集等
2.2.1常见操作2.2.2问题分析三、栈与队列3.1堆栈3.1.1常见操作3.1.2模拟栈3.1.3表达式求值3.2队列3.2.1常见操作3.2.2模拟队列3.3单调栈3.3.1问题描述3.3.2代码3.4
单调队列
For 丶I Forever
·
2023-09-26 15:56
算法系列
算法
数据结构
编程语言
链表
Leetcode1438 Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit (滑动窗口+双
单调队列
)
LongestContinuousSubarrayWithAbsoluteDiffLessThanorEqualtoLimitMediumGivenanarrayofintegersnumsandanintegerlimit,returnthesizeofthelongestnon-emptysubarraysuchthattheabsolutedifferencebetweenanytwoele
纸上得来终觉浅 绝知此事要躬行
·
2023-09-24 07:38
算法
Jump Game VI (DP +
单调队列
)
JumpGameVIMediumYouaregivena0-indexedintegerarraynumsandanintegerk.Youareinitiallystandingatindex0.Inonemove,youcanjumpatmostkstepsforwardwithoutgoingoutsidetheboundariesofthearray.Thatis,youcanjumpfr
纸上得来终觉浅 绝知此事要躬行
·
2023-09-24 07:38
leetcode
算法
职场和发展
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他