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
LeetCode_单调栈
Leetcode题解——
单调栈
问题
42.接雨水84.柱状图中最大的矩形85.最大矩形496.下一个更大元素I901.股票价格跨度402.移掉K位数字316.去除重复字母(1081.不同字符的最小子序列)321.拼接最大数以上各题均可应
单调栈
来解决
子季鹰才
·
2020-08-26 11:43
下一个更大元素 I(
单调栈
)
题解:1.暴力搜索,对nums2中每一个元素依次向右找到第一个比它大的数2.
单调栈
,被压入栈中的元素应该具有单调性,例如1,3,4,
to'get'her
·
2020-08-26 11:07
LeetCode
#
栈
下一个更大元素 I(
单调栈
)
LeetCode-496.下一个更大元素I给定两个没有重复元素的数组nums1和nums2,其中nums1是nums2的子集。找到nums1中每个元素在nums2中的下一个比其大的值。nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出-1。示例1:输入:nums1=[4,1,2],nums2=[1,3,4,2].输出:[-1,3,-1
ガッシュ·ベル
·
2020-08-26 11:30
leetcode
【POJ-2796】Feel Good【
单调栈
】
题意:给出一个序列,长度为nnn。定义区间价值为区间和*区间最小值,求出这个序列中的最大区间价值。(n≤105,0≤ai≤106)(n\leq10^5,0\leqai\leq10^6)(n≤105,0≤ai≤106)思路:此题题意十分简洁,求区间价值,并且区间价值定义就是区间和*区间最小值。因此此题最直接的思路就是枚举区间,然后发现n2n^2n2算法不可行,然后考虑枚举最小值,对所有的最小值求出这
Gene_INNOCENT
·
2020-08-26 11:29
#
单调栈
数据结构
单调栈
系列-Leetcode 496. 下一个更大元素 I
文章目录问题描述解题报告实现代码参考资料问题描述给定两个没有重复元素的数组nums1和nums2,其中nums1是nums2的子集。找到nums1中每个元素在nums2中的下一个比其大的值。nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出-1[1]^{[1]}[1]。解题报告求解每个元素的下一个更大元素,采用单调递减栈来存储数组中的
MD_
·
2020-08-26 11:47
leetcode
单调栈
单调栈
给定两个没有重复元素的数组nums1和nums2,其中nums1是nums2的子集。找到nums1中每个元素在nums2中的下一个比其大的值。nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出-1。示例1:输入:nums1=[4,1,2],nums2=[1,3,4,2].输出:[-1,3,-1]解释: 对于num1中的数字4,你无法
「已注销」
·
2020-08-26 11:38
算法学习
leetcode 496/503 下一个更大的元素1,2(
单调栈
解法)
【leetcode496题目】给定两个没有重复元素的数组 nums1和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。示例1:输入:nums1=[4,1,2],nums2=[1,3,4,2
kuangd_1992
·
2020-08-26 11:59
单调栈
Daily Temperatures(用
单调栈
求下一个比当前当前元素大的位置离当前元素的距离)
GivenalistofdailytemperaturesT,returnalistsuchthat,foreachdayintheinput,tellsyouhowmanydaysyouwouldhavetowaituntilawarmertemperature.Ifthereisnofuturedayforwhichthisispossible,put0instead.Forexample,g
帆的孤独啊
·
2020-08-26 11:51
leetcode
bzoj 3879: SvT (后缀数组+
单调栈
)
3879:SvTTimeLimit:30SecMemoryLimit:512MBSubmit:546Solved:219[Submit][Status][Discuss]Description(我并不想告诉你题目名字是什么鬼)有一个长度为n的仅包含小写字母的字符串S,下标范围为[1,n].现在有若干组询问,对于每一个询问,我们给出若干个后缀(以其在S中出现的起始位置来表示),求这些后缀两两之间的L
clover_hxy
·
2020-08-26 11:47
单调栈
后缀数组
【
单调栈
&& 右边第一个比它大的数】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_
字符串_难度简单38题)_17(懵逼题:报数)外观数列
给定一个正整数n(1≤n≤30),输出外观数列的第n项。注意:整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字1开始,序列中的每一项都是对前一项的描述。前五项如下:1.12.113.214.12115.111221第一项是数字1描述前一项,这个数是1即“一个1”,记作11描述前一项,这个数是11即“两个1”,记作21描述前一项,这个数是21即“一个2一个1”,记作1211描
Jasscical
·
2020-08-25 04:36
leetcode刷题
单调栈
以及应用(含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
【洛谷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
上一页
25
26
27
28
29
30
31
32
下一页
按字母分类:
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
其他