首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

​LeetCode刷实战85: 最大矩形

今天和大家聊的问题叫做 最大矩形,我们先来看面: https://leetcode-cn.com/problems/maximal-rectangle/ Given a rows x cols binary...这一种在各种图像识别和目标检测算法当中经常用到,模型预测的结果就是图像中心点的坐标以及长宽的长度。 ? 第二种方法可以通过矩形的对角线上的两个点来确定,这种方法只适用于和坐标轴平行的矩形。...我们枚举的复杂度规模这么高是因为我们遍历了所有矩形,遍历矩形本身就是一个时间复杂度开销非常大的举动。如果不想遍历矩形,还有什么方法可以得出最大面积呢?如果我们联想一下上一很容易得出答案。...在上一84当中,题目给出的是一个个竖直类型的矩形,要求这些矩形组合当中能够找到的最大面积。 ?...除了上面提到的之外,还有其他的一些细节,比如数组的创建的长度,还有矩形面积的计算公式等等。很多时候算法之所以难以实现,也正是因为需要考虑的细节很多,整体的逻辑不是非常清楚,需要我们进行大量的思考。

36420

☆打卡算法☆LeetCode 85、最大矩形 算法解析

一、题目 1、算法题目 “给定包含0和1的二维矩阵,找出只包含1的最大矩阵,返回其面积。” 题目链接: 来源:力扣(LeetCode) 链接:85....示例 2: 输入: matrix = [] 输出: 0 二、解题 1、思路分析 这道跟84【柱状图中最大矩形】很类似,不过84是一维的,这个是二维的。...首先,说一下暴力解法:列举所有可能出现的矩形,枚举矩形所有的左上角和右下角坐标,并检查该矩形是否是面积最大的,但是这样做时间复杂度过高,会超时。我发现在学算法之前我写出来的算法都是暴利解法。。。...那么就可以使用单调栈的做法,找到最高的柱子,并找到它左右的最大高度,拼接成最大矩形,得到面积就是想要的结果。...三、总结 代码与84代码基本类似。 思路就是: 枚举矩形的下边界,枚举下边界的每一列的高度 找到最高的柱子向左右寻找最大矩形 得到矩形求出面积

53820
您找到你想要的搜索结果了吗?
是的
没有找到

【leetcode刷】T23-最大矩形

["1","1","1","1","1"],   ["1","0","0","1","0"] ] Output:  【中文题目】 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形...  ["1","0","1","1","1"],   ["1","1","1","1","1"],   ["1","0","0","1","0"] ] 输出:  【思路】 如果明白【T22-柱状图中最大矩形...】这道的思路,那么本题的想法就很自然了:对于每一行,将其转换为柱状图,计算最大矩形面积即可。...(柱状图中计算矩形面积,需要使用一个栈,栈顶到栈底元素从大到小,这样每遇到一个比栈顶元素小的元素,则弹出栈,计算矩形面积,返回面积最大值即可。) 本题还可以使用动态规划来完成,待以后刷时再来解决。...matrix[])         res =          # 对于每一行         for i in range(len(matrix)):             # 更新ls,并计算最大矩形

40630

矩形最大面积

1 引言 矩形的面积等于长乘以宽,矩形的周长是四条边的和,给定周长让我们算面积的最大值,人为笔算会很麻烦,但用python求解矩形的的面积的最大值,可以使我们运算起来更便捷。...2 问题 给定一个长度为n (n能被4整除) 的绳子,求能围成的最大矩形面积是多少?所围成的矩形任意一条边长度不低于1。...示列 输入: 4 输出: 1 3 方法 先给出矩形的周长n,再设矩形的长宽分别为x,y(x,y的范围为[1,n))。再用if条件判断2*(x+y)= n。...再将其每次的面积s存入列表中,用max函数求出最大值。 4 实验结果与讨论 通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。...,要注意在用if条件判断时,是长和宽的和的二倍等于周长,用python求矩形面积要熟练掌握for in 双循环。

65310

​LeetCode刷实战84: 柱状图中最大矩形

今天和大家聊的问题叫做 柱状图中最大矩形,我们先来看面: https://leetcode-cn.com/problems/largest-rectangle-in-histogram/ Given...求在该柱状图中,能够勾勒出来的矩形最大面积。 ?...最简单的解法就是找出能够围成的所有矩形,然后比较它们之间的面积,得出其中的最大面积。我们很容易可以想到可以遍历矩形的起始位置,这样就得到了矩形的宽。...所以这就转化成了区间求最值的问题,比如上图当中,如果我们选择最后三个矩形,那么它的高度就是2。 我们假设一共有n个长条矩形可供选择,那么我们可以选出的首尾组合就是 ? ,大概是n的平方量级个区间。...为了找到每个木条对应的最大矩形,我们需要找到每个短板向左以及向右能够延伸到的最远位置。

36911

算法:实现最大(小)栈

##题目 实现一个最大(小)栈,即可随时拿出当前栈中最大(小)的元素 ##解题思路 这是一道非常经典的面试题,目题目也不难,但还是很能考察开发人员的基本功的,所以面试官很容易脱口就问到这个 这道题目的要求其实就是实现一个特殊的栈...这个栈能够随时拿到栈中所有元素的最大(小)值 这就是题目所有的要求了 所以在已有栈的基础上稍加改进就能实现 比较简单的办法就是使用两个栈来实现这个特殊的栈 其中一个栈stack正常进出元素 另外一个栈...)栈顶元素,则将当前栈顶的元素再次入栈 注意:当前元素栈顶并不出栈 出栈的时候就跟随stack正常出栈 这样就能保证stackMax(stackMin)跟stack的高度永远一致 并且栈顶的元素永远是最大...(小)值 ##算法图解 以最大栈为例进行图解演示 定义两个栈,和一堆需要入栈的元素 当栈为空的时候,正常入栈 当栈不为空的时候,stack栈正常入栈 stackMax栈中,则需要将入栈元素“3”与栈顶元素...stackMax栈中,则需要将入栈元素“1”与栈顶元素“3”进行比较 “3”>“1”,所以将栈顶元素“3”,再次入栈 依次类推,知道所有元素入栈 在这个过程中,stackMax栈的栈顶元素,始终是最大元素

52730

☆打卡算法☆LeetCode 84、柱状图中最大矩形 算法解析

一、题目 1、算法题目 “给定n个非负整数,用来表示柱状图每个柱子的高度,求柱状图中最大矩形的面积。” 题目链接: 来源:力扣(LeetCode) 链接:84....求在该柱状图中,能够勾勒出来的矩形最大面积。...1、思路分析 这道与42【接雨水】类似,42是求下雨之后能接多少雨水,这道是求最大矩形,为什么总是把相似的题目拉出来讲呢,因为这类都会有着相似的解题思路,可以复习之后再进行解答。...首先,来思考一下如何去求最大矩形,找到某一根柱子,将其固定为矩形的高度h,随后根据这根柱子向左右延伸,直到遇到高度小于h的柱子,这样就确定了矩形的左右边界,边界的宽度为w,面积为h * w。...OK,首先说一下什么是单调栈,单调栈是一种很经典的数据结构,里面存放的数据都是有序的,可以分为单调递增站和单调递减栈,常用于解决最大区间、最大视野、最大矩形等。

24640

最大矩形

题目描述 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。...柱状图中最大矩形】多种方法(Python3)[1] 使用了多种方法来解决。然而在这道,我们仍然可以使用完全一样的思路去完成。不熟悉的可以看下我的题解。本题解是基于那道的题解来进行的。...,"0"], ["1","0","1","1","1"], ["1","1","1","1","1"], ["1","0","0","1","0"] ] 我们逐行扫描得到 84.柱状图中最大矩形...这样我们就可以使用84.柱状图中最大矩形 中的解法来进行了,这里我们使用单调栈来解。...柱状图中最大矩形】多种方法(Python3): https://leetcode-cn.com/problems/largest-rectangle-in-histogram/solution/84-

59320

最大矩形 —— 单调栈「建议收藏」

题意: 给定从左到右多个矩形,已知这此矩形的宽度都为1,长度不完全相等。这些矩形相连排成一排,求在这些矩形包括的范围内能得到的面积最大矩形,打印出该面积。...所求矩形可以横跨多个矩形,但不能超出原有矩形所确定的范围。 思路: 易证, 最终求得的最大矩形的高度一定是某个小矩形的高度。...因此对于每一个高度求出它左右用这个高度可以覆盖到的左右两个位置,用单调栈来计算L[i]和R[i],相乘后输出最大值即可。...对于每一个小矩形,它能覆盖到的最左面的位置是L[i],那么L[i]-1位置上的矩形高度一定不会高于或等于H[i](否则就一定可以向左扩展),最右面的位置是R[i],那么R[i]+1位置上的矩形高度一定不会高于

20510

Leetcode No.85 最大矩形(单调栈)

一、题目描述 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。...[["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]] 输出:6 解释:最大矩形如上图所示...为了计算矩形最大面积,我们只需要计算每个柱状图中的最大面积,并找到全局最大值 于是,本质上是No.84 柱状图中最大矩形题中优化暴力算法的复用。...计算 left 矩阵需要 O(mn) 的时间;对每一行应用柱状图算法需要 O(n) 的时间,一共需要 O(mn) 的时间。 空间复杂度:O(mn),其中 m 和 n 分别是矩阵的行数和列数。...对每个点重复这一过程,就可以得到全局的最大矩形。 我们预计算最大宽度的方法事实上将输入转化成了一系列的柱状图,我们针对每个柱状图计算最大面积。

27210

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券