首页 > 试题广场 >

最大矩形

[编程题]最大矩形
  • 热度指数:1884 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个仅包含 0 和 1 ,大小为 n*m 的二维二进制矩阵,找出仅包含 1 的最大矩形并返回面积。

数据范围: 保证输入的矩形中仅含有 0 和 1

例如输入[[1,0,1,0,0],[1,1,1,1,0],[1,1,1,1,1],[1,0,0,1,0]]时,对应的输出为8,所形成的最大矩形如下图所示:
示例1

输入

[[1]]

输出

1
示例2

输入

[[1,1],[0,1]]

输出

2

说明

第一列的两个 1 组成一个矩形    
示例3

输入

[[0,0],[0,0]]

输出

0
示例4

输入

[[1,0,1,0,0],[1,1,1,1,0],[1,1,1,1,1],[1,0,0,1,0]]

输出

8
头像 WJQSec
发表于 2022-03-05 05:00:51
题目描述 题目链接 给定一个仅包含 0 和 1 ,大小为 n*m 的二维二进制矩阵,找出仅包含 1 的最大矩形并返回面积。 数据范围:1 ≤ n,m ≤200, 保证输入的矩形中仅含有 0 和 1 返回值描述 矩阵中仅包含 1 的最大矩形的面积 示例 输入: [[1,0,1,0,0],[1 展开全文
头像 太阳hxy
发表于 2023-09-03 19:48:53
参考的链接 import java.util.*; public class Solution { public int maximalRectangle (int[][] matrix) { //调用length获得二维数组的行数n //求出二维数组的列 展开全文
头像 双非鼠不想认输
发表于 2024-03-10 17:14:48
做这题之前建议先去做力扣 84. 柱状图中最大的矩形,这题实际上是遍历每一行,以每一行为底形成一个柱状图, 柱状图中最大的矩形,然后取得最大值。 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经 展开全文
头像 超级大米
发表于 2021-12-09 10:03:09
把每一列的1累加起来,遇到0重新开始累加,记录到一个新的矩阵中,对这个矩阵进行遍历。 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型vector< 展开全文
头像 牛客768685351号
发表于 2022-03-14 14:01:07
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型vector<vector<>> 展开全文
头像 17c89
发表于 2024-08-08 16:41:26
import java.util.*; /** * NC237 最大矩形 * @author d3y1 */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 展开全文
头像 莲湖区吴彦祖
发表于 2022-02-16 14:33:17
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 展开全文
头像 想去北京的沸羊羊在人才库
发表于 2022-01-05 23:40:33
1.计算矩阵每行从左到右连续值为1的长度,得到矩阵left (理解成柱状图) 2.将left的每个非零位置,作为矩阵的右下角,从该位置往上找到一个最大矩形。 public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 展开全文