当前位置: 首页 > news >正文

OJ练习第103题——最大矩形

最大矩形

力扣链接:85. 最大矩形

题目描述

给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。

示例

在这里插入图片描述
输入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]
输出:6
解释:最大矩形如上图所示。

Java代码(dp)

class Solution {public int maximalRectangle(char[][] matrix) {int m = matrix.length, n = matrix[0].length;int res = 0;int[][] dp = new int[m+1][n+1];for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (matrix[i-1][j-1] == '0') continue;dp[i][j] = dp[i][j-1] + 1;int maxArea = dp[i][j], minLength = dp[i][j];for (int height = 2; i >= height && matrix[i-height][j-1] != '0'; height++) {minLength = Math.min(minLength, dp[i-height+1][j]);maxArea = Math.max(maxArea, height * minLength);}res = Math.max(res, maxArea);}}return res;}
}

其他思路

在这里插入图片描述
每一层看作是柱状图,可以套用84. 柱状图中最大的矩形的最大面积。

第一层柱状图的高度[“1”,“0”,“1”,“0”,“0”],最大面积为1;

第二层柱状图的高度[“2”,“0”,“2”,“1”,“1”],最大面积为3;

第三层柱状图的高度[“3”,“1”,“3”,“2”,“2”],最大面积为6;

第四层柱状图的高度[“4”,“0”,“0”,“3”,“0”],最大面积为4;

这一题的算法本质上和 84.题柱状图中最大的矩形 一样,对每一行都求出每个元素对应的高度,这个高度就是对应的连续1的长度,然后对每一行都更新一次最大矩形面积。那么这个问题就变成了85最大矩形。本质上是对矩阵中的每行,均依次执行84题算法。


来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximal-rectangle
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

http://www.lryc.cn/news/67481.html

相关文章:

  • JavaScript实现输入年份判断是否为闰年的代码
  • LiangGaRy-学习笔记-Day12
  • LayUI中弹出层select动态回显设置及子页面刷新父页面Table数据方法
  • 浅谈Hutool工具类
  • Mac终端代理
  • Git Clone 报错 `SSL certificate problem: unable to get local issuer certificate`
  • 第八章 文件与异常
  • Gradle使用
  • 从七个方面聊聊Linux到底强在哪
  • python读写json文件方法详解
  • 多处最优服务次序问题——算法设计与分析(C实现)
  • 2023 年 IntelliJ IDEA 下载安装教程,超详细图文教程,亲测可用
  • 前端框架比较:Vue.js、React、AngularJS三者的优缺点和应用场景
  • JavaScript中的数据可视化和动画效果
  • 如何搭建在线产品手册
  • Java版企业电子采购招标系统源码
  • 【操作系统复习】第6章 虚拟存储器 2
  • 【OAI】OAI5G核心网VPP-UPF网元分析
  • 【上进小菜猪】使用Ambari提高Hadoop集群管理和开发效率:提高大数据应用部署和管理效率的利器
  • Day3--C高级3
  • 第9章 CURD操作与MemoryCache缓存的强制清理的实现
  • TCP 协议特性详解
  • 电子招投标采购系统源码:采购过程更规范,更透明
  • 一篇了解智慧网关
  • 自学软件测试,从10K到40K的技术路线,也就是这些东西...
  • Qt libqrencode二维码——QtWidgets
  • KDZD绝缘子表面电导盐密度测试仪
  • 如何降低电动汽车软件的开发成本和风险?
  • 使用pytest和allure框架实现自动化测试报告优化
  • chatGPT免费站点分享