题面1:  题面2:  两道题除了数据范围不同,没有任何差异,两道题都可以o(n)(单调栈),o(nlog(n))(我自己的做法)解决. 解题思路1:(单调栈) 对于每个点找到右边第一个比它小的位置con1,并且找到左边第一个比它小的位置con2. 对于每个点更新答案为ans = max(ans, (con2-con1-1)*value[i]). 1的做法是两次裸的单调栈,时间复杂度为o(n). 代码1: #include <bits/stdc++.h> using namespace s…
链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1102 思路: 首先介绍下单调栈的功能:利用单调栈,可以找到从左/右遍历第一个比它小/大的元素的位置.时间复杂度为O(n). 这道题要找最大的矩形的面积,我们可以假设i为矩形最低的高,那么对每一个i找到向左走第一个比他小的l[i],和向右走第一个比他小的r[i]. 我们可以知道当前矩阵最大为:a[i] * (l[i]-1-(r[i]-1)+1);对所有i的值取最大…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1102 题意: 思路: 做法就是求出每个长方形向左向右所能延伸的最大距离. 我这里用单调栈来做,维护一个单调递增的栈(自底向上递增),如果当前值大于栈顶,那么直接进栈,如果小于的话,那就说明前面比它大的那些数最多只能延伸到它这里.自己手动模拟一下就可以了. #include<iostream> #include<algorithm> #include<…
题目地址在这儿 求取:以某矩形g[i]为最小值的区间的左右端点,得到一个临时解.所有临时解中的最大值即为解. 求取区间的方法可以用单调栈,也可以用下面这种十分简洁的类似于递归的方法.下面这种解法求出来的区间是开区间,也正是因为开区间,所以跳转很方便. L[i]是以第i根柱子为最小值的左开区间点.若g[i] <= g[L[i]],则L[i]=L[L[i]]: 打个比方,柱子高度为1,3,9,7,5.g[4]=7,一开始L[4]初始化为3,那么若g[4]<=g[L[4]],即7=g[4]<=…
1675: Fehead的项目 时间限制: 1 Sec  内存限制: 128 MB提交: 41  解决: 27[提交][状态][讨论版] 题目描述 Fehead俱乐部接手了一个项目,为了统计数据,他们把这个项目做成了一个柱形统计图.对于这个柱形统计图,它的每个项目的宽度是1, 高度和具体问题有关.现在身为Fehead铁杆粉丝的你,帮忙编程求出在这个柱形图中的最大面积的矩形. 例如对于这三个矩形,阴影部分面积最大. 输入 有多组测试,每一组测试第一个数为N1<=N<=100000,代表N个矩形,…
前置问题:51nod 1102 面积最大的矩形 附上链接: 51nod 1102 面积最大的矩形 这题的题解博客 需要了解的知识:单调栈,在前置问题中已经讲解. 解题思路 对每行求左边连续1的个数,得到数组a[i][j]; 对于第j列,找出每个位置i的数字a[i][j]上面第一个比它小数字l,和下面第一个比它小的数字r. 由这个点所在列为底,这个点的数字为最小值产生的矩形的面积为a[i][j]*(r-l-1),用这一列每一个面积更新ans. 上面2的求法就是单调栈了,总时间复杂度o(n*m).…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1102 1102 面积最大的矩形 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 有一个正整数的数组,化为直方图,求此直方图包含的最大矩形面积.例如 2,1,5,6,2,3,对应的直方图如下:     面积最大的矩形为5,6组成的宽度为2的矩形,面积为10. Input 第1行:1个数N,表示数组的长度(0 <= N <=…
hdu1506 直方图中最大的矩形 单调栈入门 直方图是由在公共基线对齐的矩形序列组成的多边形.矩形具有相同的宽度,但可能具有不同的高度.例如,左侧的数字显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图,单位为1,其中矩形的宽度为1: 通常,直方图用于表示离散分布,例如文本中字符的频率.请注意,矩形的顺序,即它们的高度很重要.计算在公共基线上对齐的直方图中最大矩形的面积.右图显示了所描述的直方图的最大对齐矩形. 输入包含几个测试用例.每个测试用例都描述一个直方图,并以整数n开头,表示它…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题第52篇文章,我们一起来看LeetCode第84题,Largest Rectangle in Histogram(最大矩形面积). 这道题的官方难度是Hard,点赞3581,反对只有80,通过率在34.7%左右.从通过率上来看,难度其实还可以,并没有特别大,但是这道题的点赞比很高,说明题目的质量很好.实际上也的确如此,这题非常经典,我个人也非常推荐.建议大家有能力的都做一下本题,一定会很有收获. 题意 假设我们…
A histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rectangles have equal widths but may have different heights. For example, the figure shows the histogram that consists of rectangles with the heights 2,…