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
单调栈+单调队列
【
单调栈
&& 右边第一个比它大的数】SDUT 3333 数据结构实验之栈与队列六:下一较大值(二)
数据结构实验之栈与队列六:下一较大值(二)TimeLimit:150MSMemoryLimit:8000KBSubmitStatisticProblemDescription对于包含n(1间隔。ExampleInput24122015185201525306ExampleOutput12–>2020–>-115–>1818–>-120–>2515–>2525–>3030–>-16–>-1思路:我们
笑对这个世界的志贵
·
2020-08-26 11:46
SDUT
OJ
栈和队列
BZOJ 4540 [Hnoi2016]序列 | 莫队 详细题解
首先用
单调栈
可以轻松求出每个元素左右两边第一个比它小的元素位置,分别设为tl[i]、tr[i]。
weixin_30508309
·
2020-08-25 15:43
数据结构总结
出栈进栈都只有一句话而已常见用途:消去一个序列中的相同元素(做法大家应该都知道了吧,见过很多次了)维护一个单调的序列(所谓的
单调栈
,d
South__wind
·
2020-08-25 15:08
数据结构
42. Trapping Rain Water
42.TrappingRainWater参考:LeetCodeMonotoneStackSummary
单调栈
小结Givennnon-negativeintegersrepresentinganelevationmapwherethewidthofeachbaris1
zhc_24
·
2020-08-25 06:13
算法
LeetCode
栈和队列(手写)
其实已经发过一次栈和队列了,不过那个是直接利用STL的用法,这里写一写利用数组完成的栈和队列操作,顺便写一写
单调栈
和
单调队列
的操作和一般用途。
Z_Mo_Cheng
·
2020-08-25 06:06
leetcode
单调栈
42接雨水 84柱状图最大矩形
记一下刷的题42接雨水1.动态规划,时间复杂度O(n)classSolution:deftrap(self,height:List[int])->int:ifnotheight:return0n=len(height)max_left=[0]*nmax_right=[0]*nmax_left[0]=height[0]max_right[-1]=height[-1]#找位置i左边最大值foriinr
youarestone
·
2020-08-25 06:13
刷题
leetcode85.最大矩形(java):
单调栈
题目分析这道题是84题的进阶版,需要自己去画这个柱形图。for(inti=0;istack=newStackheight[i]){maxArea=Math.max(maxArea,height[stack.pop()]*(i-stack.peek()-1));}stack.push(i);}while(stack.peek()!=-1){maxArea=Math.max(maxArea,heigh
wmtmw
·
2020-08-25 06:08
leetcode
最大矩形
单调栈
如果能把这个矩阵转换成高度数组(柱状图),那么利用
单调栈
就可以在线性复杂度内求解出柱状图内的最大矩形面积。
csu_xiji
·
2020-08-25 05:13
面试题
单调栈
思维
每日温度
单调栈
https://leetcode-cn.com/problems/daily-temperatures/思路:
单调栈
的简单变形。
csu_xiji
·
2020-08-25 05:12
面试题
单调栈
Leetcode 42:接雨水(
单调栈
)
题目:给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。感谢Marcos贡献此图。示例:输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6答案:看了这个答案才会做的,代码如下:classSolution{publi
wyplj_sir
·
2020-08-25 05:28
LeetCode
算法练习:830.
单调栈
830.
单调栈
给定一个长度为N的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出-1。输入格式第一行包含整数N,表示数列长度。第二行包含N个整数,表示整数数列。
Realstraw²
·
2020-08-25 05:26
Leetcode42 接雨水 Python
利用
单调栈
的特性classSolution:"""
单调栈
,维护一个从大到小的
单调栈
,比如[4,3,2,1]假设我们的数据是[4,3,1,0,1,2,4]我们先组成
单调栈
,则stack里的元素是[4,3,1,0
MarDino
·
2020-08-25 05:42
LeetCode
Python
单调栈
专题
最近稍微补了一下
单调栈
的习题(虽然以前做过),加深一下理解。力扣84:柱状图中最大的矩形思路:首先考虑一下暴力的做法,枚举每根柱子,它能延申的面积=左右两边第一个小于他的数组成的宽*这个数的值。
深入人心
·
2020-08-25 05:25
思维题
单调栈
单调栈
问题:接雨水,每日温度
接雨水:给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解题思路:我们在此处需要栈这个容器;首先我们解析一下题目:我们先放入一个柱子入栈,如果在此放入的柱子高度比
@书生
·
2020-08-25 05:47
代码练习
双指针 | 动态规划 |
单调栈
:力扣42. 接雨水
1、题目描述:2、题解:方法1:双指针法思路:定义双指针left,right,一个向右走,一个向左走,那么还需要定义左边的最大高度leftmax和右边的最大高度rightmax循环:找出left左边的最大高度leftmax找出right右边的最大高度rightmax找到较小的值,更新res和指针返回resclassSolution:deftrap(self,height:List[int])->i
剑圣土豆
·
2020-08-25 05:50
LeetCode高频面试题
Leetcode:接雨水(动态规划、
单调栈
)
https://leetcode-cn.com/problems/trapping-rain-water/1.暴力法从左向右遍历,依次找到每个点左边最高的墙和右边最高的墙,然后比较出最小的墙,再减去当前点的高度就可以得出水在这个点的积水量。classSolution{publicinttrap(int[]height){intans=0;for(inti=1;i=0;j--){max_left=M
VvUPUP
·
2020-08-25 04:34
刷题
【面试题三】求一个数组中右边第一个比他大的数(
单调栈
)
deffind_near_max(array):ifnotarray:return[]stack=[]res_arr=[-1]*len(array)foriinrange(len(array)):whilestackandarray[stack[-1]]
K-Stephen
·
2020-08-25 04:18
数据结构与算法
力扣 5.21
单调栈
回文串、最长公共子串系列5最长回文子串动态规划,dp[i][j]=True表示i-j之间是回文串如果dp[i+1][j-1]==True且s[i]==s[j],那么说明dp[i][j]也是回文串,可以更新最大长度如果s[i]==s[j]且j-istr:n=len(s)ifnmaxl:maxl=max(j-i+1,maxl)l,r=i,jreturns[l:r+1]414.第三大的数排序的时间复杂度
咩桃
·
2020-08-25 04:38
力扣
找出数组中每个数右边第一个比它大的元素--时间复杂度o(n)
单调栈
解法
题目:给定一个整型数组,数组元素随机无序的,要求打印出所有元素右边第一个大于该元素的值。如数组A=[1,5,3,6,4,8,9,10]输出[5,6,6,8,8,9,10,-1]如数组A=[8,2,5,4,3,9,7,2,5]输出[9,5,9,9,9,-1,-1,5,-1]1、暴力遍历我们很容易想到复杂度为O(n^2)的解法,遍历数组中的每一个后面所有元素,找到第一个大于它的,输出即可。代码实现如下
潇潇凤儿
·
2020-08-25 04:48
算法
(数据结构)
单调栈
的介绍
什么是
单调栈
单调栈
,就是栈内元素从栈底到栈顶具有单调性的栈,可以分为单调递增栈和单调递减栈。特点具有栈的相关性质。
三看
·
2020-08-25 04:01
数据结构与算法
#
栈
Leading Robots(物理追赶+
单调栈
)
这道题我一开始的思路是加速度小到大,然后加速度相同的位置小到大,然后枚举时间复杂度为n方。显然行不通。之后结束后看大佬的题解,才明白了。。。。。。排序还是我的那个思路。但是在处理谁追赶谁的问题上这两个条件真的难想。条件:1.如果排序之后在后面的,那么如果他的位置大于前面的,那么前面的肯定就没有机会做第一。2.如果有a,b,c。那么c追上b的条件是b追上a的时间必须小于c追上b的时间。如果大于或者等
Forward in time
·
2020-08-25 04:56
stack
接雨水 (
单调栈
or 双指针算法)
示例:输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6这个题本身是
单调栈
的题,但是我试着用双指针完成,测出来居然比
单调栈
要快?
SoKeeGanCN
·
2020-08-25 04:13
数据结构
单调栈
1
数据范围1≤N≤1051≤数列中元素≤109输入样例:534275输出样例:-13-122
单调栈
:一种具有单调性的栈如何插入元素:1.若
逐梦er
·
2020-08-25 04:09
数据结构与算法题解总集
【
单调栈
单调递减栈 宽度是当前减弹出后的新栈顶(左右比自己高的相减) 高度是两个进行比较 】 42接雨水
题目给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6思路单调递减栈:当找到一根比前面高的柱子,就可以接雨水,当后面的比前面的低就不可以接。因此相当于寻找右边第一个更大的,那么就是单调递减栈。雨水的区域:右边的目前遍历到的数字,底部是栈顶,左边是栈顶的前一个。计算:水坑高度——左右两边更低的元素
Betternw
·
2020-08-25 04:27
单调栈
单调栈
以及应用(含leetCode第42题接雨水代码)
单调栈
定义
单调栈
的定义:元素值满足单调性的栈结构。与
单调队列
相比,其只在一端进行进出。递增栈是栈顶到栈底依次递增。插入过程中,保持栈内一直是单调性,将不满足的元素pop出栈,直接丢弃。
生而知之者为妖
·
2020-08-25 04:31
数据结构
单调栈
-- 42. 接雨水
给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。感谢Marcos贡献此图。示例:输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6来源:力扣(LeetCode)classSolution{public:inttr
独孤金泽
·
2020-08-25 04:32
ACM
无尽算法之 股票价格跨度(
单调栈
+HashMap)
编写一个StockSpanner类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。例如,如果未来7天股票的价格是[100,80,60,70,60,75,85],那么股票跨度将是[1,1,1,2,1,4,6]。示例:输入:[“StockSpanner”,“next”,“next”,“next”,
李昊轩的博客
·
2020-08-25 03:49
无尽算法系列
单调栈
定义栈内元素按照递增或者递减的顺序排列的栈适用问题
单调栈
分为单调递增与单调递减栈,可以用于获取下一个比当前元素大(小)的元素。当需要通过比较前后元素的大小关系时,可以使用
单调栈
解决问题。
笨鸟先飞飞飞
·
2020-08-25 03:16
leetcode
算法
数据结构
leetcode
leetcode42.接雨水/
单调栈
给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。感谢Marcos贡献此图。示例:输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6来源:力扣(LeetCode)链接:https://leetcode-cn.com
Crystal_Coding
·
2020-08-25 03:06
#
算法
单调栈
系列-Leetcode 316. 去除重复字母
文章目录问题描述解题报告实现代码参考资料问题描述给你一个仅包含小写字母的字符串,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例1:输入:“bcabc”输出:“abc”解题报告维持一个单调递增栈。其他也没什么难点了,有一个注意要点是,如果a已经入栈了,在后面又遇到当前元素a小于栈顶元素b,此时是不需要将元素b弹出的,因为已经维持
MD_
·
2020-08-25 03:57
leetcode
单调栈
单调栈
的一个总结
LeetCode84自己总结的
单调栈
,最好自己手算个
单调栈
看看是怎么样,就很清楚了。https://www.bilibili.com/read/cv3890051
奶瓶他哥
·
2020-08-25 03:30
题解
接雨水问题(python实现
单调栈
问题)
题目描述给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。示例:输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems
巴涅波赫夫
·
2020-08-25 03:20
刷题笔记
单调栈
及其应用——以LeetCode(42) 接雨水,LeetCode(84)柱状图最大的矩形为例
大家都知道,栈是一种常用的数据结构,有一定的数据操作和使用的规则,
单调栈
是使用栈来实现的一种算法,之所以将
单调栈
称为一种算法就是因为它是用来解决某一类问题的,还没有通用到可以解决很多的问题,或者作为其他算法的基本元素
胜天半子·浩
·
2020-08-25 03:13
LeetCode 接雨水(
单调栈
,双指针,DP)
题目链接给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。示例:输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解题思路本题对雨水的计算方法有两大类一种是竖着计算即按照列,另一种是横着计算即按照行,相对来说竖着计
Codingboy_wj
·
2020-08-25 03:24
Leetcode
单调栈
双指针
Codeforces 319B 题解
所以我只需要找出所有数字被消去轮数的最大值即可,这个要求可以用一个
单调栈
来完成。
Erag0n
·
2020-08-25 03:16
Codeforces
冲冲冲
滴水日记太难了…蒟蒻流泪日记dfs,bfsdp,状态压缩dp二分,三分贪心线段树:rmq树状数组图:最小生成树,最短路数论:埃氏筛,中国剩余定理,gdc,快速幂
单调栈
https://www.cnblogs.com
lingdie.
·
2020-08-25 03:04
学习
gcd
HDU 1059 Dividing
所以必定得优化,但是
单调队列
优化的算法不会,只好把用二进制优化的多重背包模板摸过去..下面蓝色字部分来自.其中红色部分是算法优化核心..转化为01背包问题另一种好
muximuxi525
·
2020-08-25 03:44
DP
HDU解题报告
【洛谷3467/BZOJ1113】[POI2008]海报PLA-Postering(
单调栈
)
本文Markdown版见http://www.cnblogs.com/zyt1253679098/p/8876811.html题目:洛谷3467分析:(tijieshuo)这题是个
单调栈
经典题。
Inspector_Javert
·
2020-08-25 03:27
数据结构
接雨水【
单调栈
】
方法一:遍历每一列,然后求该列两边的最高的柱子高度,那么该列能存放的雨水量为两边柱子高度较低的一个柱子和当前列的高度差。可以使用动态规划来优化求某一列的两边最高的柱子高度的过程,使用dp数组来保存,可以避免每次都重新遍历整个数组。classSolution{publicinttrap(int[]height){intsum=0;int[]max_left=newint[height.length]
BaldBear
·
2020-08-25 03:39
刷题路漫漫
【LeetCode】每日一题(二)柱状图中最大的矩形
单调栈
+哨兵技巧
84.柱状图中最大的矩形20200530难度:困难题目描述给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为1。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为1,给定的高度为[2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为10个单位。示例:输入:[2,1,5,6,2,3]输出:10Solution思路一暴
_Evelyn_
·
2020-08-25 03:06
数据结构与算法
LeetCode
二模 (13)day1
N<=1000000解题过程:1.前几天做poj的时候刚好在discuss里看到有一个神奇的东东叫
单调栈
,正好派上用场。。。虽然本题2s的时限RMQ+二分应该也不会超时,但是容易写错。
dehs8915
·
2020-08-25 03:13
(
单调栈
)42. 接雨水
给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。感谢Marcos贡献此图。示例:输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6来源:力扣(LeetCode)链接:https://leetcode-cn.com
black_horse2018-Dong
·
2020-08-25 02:29
单调栈
leetcode
[POI 2008&洛谷P3467]PLA-Postering 题解(
单调栈
)
[POI2008&洛谷P3467]PLA-PosteringDescriptionByteburg市东边的建筑都是以旧结构形式建造的:建筑互相紧挨着,之间没有空间.它们共同形成了一条长长的,从东向西延伸的建筑物链(建筑物的高度不一).Byteburg市的市长Byteasar,决定将这个建筑物链的一侧用海报覆盖住.并且想用最少的海报数量,海报是矩形的.海报与海报之间不能重叠,但是可以相互挨着(即它们
aua4137
·
2020-08-25 02:10
每个数左边第一个比它小/大的数(
单调栈
)
给定一个长度为N的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出-1。输入格式第一行包含整数N,表示数列长度。第二行包含N个整数,表示整数数列。输出格式共一行,包含N个整数,其中第i个数表示第i个数的左边第一个比它小的数,如果不存在则输出-1。数据范围1≤N≤1051≤N≤1051≤数列中元素≤1091≤数列中元素≤109输入样例:534275输出样例:-13-122解题思路:利用栈的
alex1997222
·
2020-08-25 02:00
leetcode刷题
【洛谷P4954】Tower of Hay 干草塔【
单调队列
dp】
题目大意:题目链接:https://www.luogu.org/problem/P4954为了调整电灯亮度,贝西要用干草包堆出一座塔,然后爬到牛棚顶去把灯泡换掉。干草包会从传送带上运来,共会出现N包干草,第i包干草的宽度是Wi,高度和长度统一为1。干草塔要从底层开始铺建。贝西会选择最先送来的若干包干草,堆在地上作为第一层,然后再把紧接着送来的几包干草包放在第二层,再铺建第三层……重复这个过程,一直
SSL_ZYC
·
2020-08-25 02:35
单调队列优化dp
数组中每个位置右边第一个比它大的数
-1样例输入:8,2,5,4,3,9,7,2,5样例输出:9,5,9,9,9,-1,-1,5,-1 题目的终点当然是O(1)时间,也就是遍历一次就应该能够输出,那一定是需要辅助空间的了,这里用到的是
单调栈
Bob__yuan
·
2020-08-25 02:39
#
编程题
接雨水
单调栈
dp
https://leetcode-cn.com/problems/trapping-rain-water/思路一:维护一个单调非升的栈,栈中存储的是数组的下标,那么如果height[i]>height[s.top()]height[i]>height[s.top()]height[i]>height[s.top()],此时要判断一下栈中的元素是不是>=2>=2>=2的,因为iii作为右边界,s.t
csu_xiji
·
2020-08-25 02:47
单调栈
dp
动态规划
接雨水(
单调栈
)
单调栈
这题是典型的
单调栈
解法,我们维护一个单调递减栈,当发现height[i]大于栈顶元素时,说明有可能形成水坑,这个水坑的高度等于左右柱子中较低的柱子与水坑底部的高度差。
virgilshi
·
2020-08-25 02:14
leetcode
5.23力扣 最大子数组和 前缀和+
单调栈
面试题16.16.部分排序当一个数a[i]左侧有一个数比它大的时候,或者右侧有一个数比它小的时候,它一定是在被排序的序列内。因为一个数如果左边的数都比它小,右边的数都比它大,显然没必要排序。那么对于元素a[i]来说,如果它左边存在大于a[i]的元素,那么a[i]是一定要参与到排序里去的。或者说如果它右边存在小于a[i]的元素,那么a[i]也是要参与到排序里去的。所以我们只需要寻找最靠右的那个数(满
咩桃
·
2020-08-25 02:57
力扣
接雨水(使用
单调栈
处理)
示例:输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6思路1.使用
单调栈
,加入元素好要保持单调。必须再入栈前将栈顶小于入栈元素的元
吉诺比利20
·
2020-08-25 02:27
算法练习总结
上一页
31
32
33
34
35
36
37
38
下一页
按字母分类:
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
其他