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

news2024/9/20 20:42:49

最大矩形

力扣链接: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.coloradmin.cn/o/512291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库管理-第七十四期 我的Oracle ACE之路(20230511)

数据库管理 2023-05-11 第七十四期 我的Oracle ACE之路1 差点错过2 ACE Associate3 一路走来总结 第七十四期 我的Oracle ACE之路 “终于等到你&#xff0c;还好我没放弃”。经过了整整4个月20天的等待&#xff0c;我终于收到了Oracle ACE Associate的确认邮件&#xff0c;成为…

『python爬虫』17. 线程池和进程池以及线程池实战(保姆级图文)

目录 1. 线程池和进程池解决的是调度问题2. 线程池3. 线程池实战&#xff1a;爬取西游记的标题总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 1. 线程池和进程池解决的是调度问题 ⽹站的数据太多了&#xff0…

典型随机噪声激励

1.按噪声的起源分类 根据噪声的起源&#xff0c;分为内部噪声和外部噪声。 内部噪声&#xff1a;来源于系统内部的涨落运动或被检测信号&#xff0c;如布朗粒子受到周围液体分子的无规则碰撞即为内部噪声&#xff1b; 外部噪声&#xff1a;来自系统所处外部环境的随机涨落&…

endNote X9 导入英文文献(谷歌学术、web of science 等)

文章目录 1 导入英文文献&#xff08;谷歌学术、web of science 等&#xff09;2 EndNote X9 插入参考文献常见问题总结3 EndNote X9 快速上手教程&#xff08;毕业论文参考文献管理器&#xff09; 1 导入英文文献&#xff08;谷歌学术、web of science 等&#xff09; 谷歌学术…

Vite如何实现秒级依赖预构建的能力

大家都知道, Vite是一个提倡 no-bundle 的构建工具,相比于传统的 Webpack,能做到开发时的模块按需编译,而不用先打包完再加载。这一点我们在快速上手这一节已经具体地分析过了。 需要注意的是,我们所说的模块代码其实分为两部分,一部分是源代码,也就是业务代码,另一部…

线性代数——特征值与特征向量的性质

&#xff08;1&#xff09;设A为方阵&#xff0c;则A与 A T A^{T} AT有相同的特征值。 此处用到了两个关键性质&#xff0c;一&#xff1a;单位阵的转置为其本身,二&#xff1a;转置并不改变行列式的值。 &#xff08;2&#xff09;&#xff1a; 设n阶方阵A&#xff08; a i j…

汽车电子的电磁兼容性分析

随着电子技术的不断发展&#xff0c;新技术越来越多的应用到汽车领域&#xff0c;因此各个电子装置和电子控制系统必须相互适应&#xff0c;这就是电磁兼容性(EMC)要求。为了保证汽车可靠性&#xff0c;设计师必须在早期设计阶段分析电磁兼容性问题。目前市场上推出了一些电磁兼…

jdk20-虚拟线程简单了解

普通线程 JDK中的普通线程和操作系统线程是一对一关系的&#xff0c;存在映射关系&#xff1b;由操作系统进行调度&#xff0c;线程过多&#xff0c;会引起操作系统频繁调度&#xff0c;导致线程上下文切换太过频繁&#xff0c;反而会降低系统性能&#xff1b;线程越多&#x…

即时通讯私有化部署有哪些优势?企业在选择时需要考虑哪些因素?

即时通讯私有化部署是一种将即时通讯系统部署在企业的私有服务器上&#xff0c;以保护企业的信息安全和隐私。相比于使用Saas部署即时通讯应用程序&#xff0c;私有化部署可以更好地保护企业的机密信息&#xff0c;避免信息泄露的风险。 在即时通讯私有化部署中&#xff0c;企业…

半导体热处理设备微环境中的精密微正压控制解决方案

摘要&#xff1a;针对半导体热处理设备微环境中的微正压精密控制&#xff0c;本文分析了现有技术造成微正压控制不稳定的原因&#xff0c;提出了相应的解决方案。解决方案主要是采用绝对电容真空计替代压差计&#xff0c;采用真空低漏率的高速电动针阀和电动球阀替代气体质量流…

【Python 正则表达式】零基础也能精通的正则表达式学习路线与参考资料

文章目录 一、正则表达式基础二、进阶知识三、优秀实践参考资料&#xff1a; 一、正则表达式基础 正则表达式是一种用来描述字符模式的语言&#xff0c;它可以用来匹配、查找、替换字符串中的文本。在Python中&#xff0c;我们可以使用re模块来操作正则表达式。 正则表达式基…

MATLAB三维曲面作图(三)特殊效果的绘图(灯光)

首先&#xff0c;我们来绘制一个海螺的复杂图形 close all t linspace(0,2*pi,512); [u v] meshgrid(t); a -0.4; b 0.5; c 0.1; n 3; x (a*(1-v/(2*pi)).*(1cos(u))c).*cos(n*v); y (a*(1-v/(2*pi)).*(1cos(u))c).*sin(n*v); z b*v/(2*pi)a*(1-v/(2*pi)).*sin(u); s…

RabbitMQ详解(五):过期时间TTL、死信队列、磁盘监控

过期时间TTL&#xff08;Time To Live&#xff09; 过期时间TTL表示可以对消息设置预期的时间&#xff0c;在这个时间内都可以被消费者接收获取&#xff1b;过了之后消息将自动被删除。 目前有两种方法可以设置 第一种方法是通过队列属性设置&#xff0c;队列中所有消息都有…

App报毒-Google Play保护机制,已屏蔽不安全的应用

一、概述 解决安卓app在海外国际版本如&#xff1a;华为、OPP/VIVO、小米和荣耀报毒问题.触发Google Play保护机制. 安卓app报毒爆红&#xff0c;vivo手机爆红&#xff0c;oppo小米华为荣耀手机报毒&#xff0c;手机安装app时提示报毒&#xff0c;有的app是刚打包出来、有的是用…

Cocos Creator 3.7.3 正式上线,渲染管线和算法持续更新

Cocos Creator 3.7.3 正式发布。该版本对近日用户反馈的一系列关键性问题进行了集中修复&#xff0c;也对一部分性能进行了优化&#xff0c;提升了用户体验&#xff0c;建议所有 v3.x 用户升级。 Engine Features Render Graph 自定义渲染管线支持 GLES 后端Deprecate addRast…

【C++】五一假期,我学会了C++类和对象 ( 看完这篇你也能学会 ~ )

文章目录 ☑️前言✅类和对象【&#x1f3c6;上篇&#x1f3c6;】一. 面向过程和面向对象初步认识二. 与类的完美邂逅❤️1. 类的引入2. 类的定义 三. 增进与类的距离❤️1. 类的访问限定符及封装1.1. 访问限定符1.2. 封装【⭐重大思想⭐】 2. 类的作用域3. 类的实例化 四. 类对…

专访惠众科技|元宇宙应用如何借助3DCAT实时云渲染实现流畅大并发呈现?

当前互联网流量红利已经逐渐消失&#xff0c;营销同质化愈发严重。在这样的背景下&#xff0c;催生了以为元宇宙 焦点的虚拟产业经济。元宇宙在各行各业中以不同形式快速萌生、成长&#xff0c;呈现出多元化的应用场景。尤其是众多品牌&#xff0c;将元宇宙视为品牌建设与营销新…

JavaScript - 进阶+高级(笔记)

前言 给孩子点点关注吧&#xff01;&#x1f62d; 本篇文章主要记录以下几部分&#xff1a; 进阶&#xff1a; 作用域&#xff1b;函数进阶&#xff08;函数提升、函数参数、箭头函数&#xff09;&#xff1b;解构赋值&#xff1b;对象进阶&#xff08;构造函数、实例成员、静…

算法记录 | Day57 动态规划

647.回文子串 思路&#xff1a; 1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义&#xff1a; 布尔类型的dp[i][j]&#xff1a;表示区间范围[i,j] &#xff08;注意是左闭右闭&#xff09;的子串是否是回文子串&#xff0c;如果是dp[i][j]为true&#xff0c;否…

【前端】实际开发案例

文章目录 1. 侧边栏2. 调查报告3. 显示隐藏遮罩案列4. 鼠标经过&#xff0c;图片放大5. 奔跑的熊6. 旋转木马7. 百度换肤8. tab栏切换9. 下拉菜单10. 发布留言11. 动态生成表格12. 图片跟随鼠标移动13. 按键输入内容14. 定时器实现15. 发送短信16. 5秒后跳转页面17. 获取URL参数…