leetcode(85)最大矩形——转化为84题

leetcode - [栈、动态规划] - 最大矩形(85) 1、问题描述 给定一个只包含0、1的二进制二维矩阵,找出只包含1的最大矩形,并返回其最大面积。 示例: 输入: [ [“1”,“0”,“1”,“0”,“0”], [“1”,“0”,“1”,“1”,“1”], [“1”,“1”,“1”,“1”,“1”], [“1”,“0”,“0”,“1”,“0”] ] 输出: 6 2、解题思路 思路1:暴力法。列举所有以(x1,y1),(x2,y2)(x_1,y... 阅读详情

题目描述
给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。

示例:
输入:
[
[“1”,“0”,“1”,“0”,“0”],
[“1”,“0”,“1”,“1”,“1”],
[“1”,“1”,“1”,“1”,“1”],
[“1”,“0”,“0”,“1”,“0”]
]
输出: 6

思路

对于每一列累计他的最大高度,相当于遍历每一行之后都会形成一个柱状图,累计最大高度使用如下代码:

   dp[j] = dp[j] + 1 if matrix[i][j] == '1' else 0

每行遍历结束之后使用84算法更新最大面积。


class Solution {
public:
//这里直接复制的84题代码
    int largestRectangleArea(vector<int>& heights) {
      stack<int> S;
      int maxArea = 0;
      int p = 0;
      while(p < heights.size()){
        if(S.empty()){
            S.push(p);
            ++p;
        }
        else {
            int t = S.top();
            if(heights[p] >= heights[t]){
                S.push(p);
                ++p;
            }
            else{
                int h = heights[S.top()];
                S.pop();
                int r = p;
                int l = S.empty() ? -1 : S.top();
                maxArea = max(maxArea,h * ( r - l - 1));
            }
        }
      }

      while(!S.empty()){
        int h = heights[S.top()];
                S.pop();
                int r = p;
                int l = S.empty() ? -1 : S.top();
                maxArea = max(maxArea,h * ( r - l - 1));
      }

      return maxArea;
    }
    int maximalRectangle(vector<vector<char>>& matrix) {
        int m = matrix.size();
        if(m == 0)return 0;
        int n = matrix[0].size();
        vector<int> rec(n,0);
        int maxArea = 0;
        for(int i = 0; i < m;++i){
            for(int j = 0;j < n;++j){
                rec[j] = matrix[i][j] == '1' ? rec[j] + 1 : 0;
            }
            maxArea = max(maxArea,largestRectangleArea(rec));
        }

        return maxArea;
    }


};

OpenClaw-遇到的问题-Health check failed: gateway closed (1006 abnormal closure (no close frame)): no clos OpenClaw网关服务安装成功但运行异常,显示健康检查失败(错误代码1006)。系统提供了Web控制界面(http://127.0.0.1:18789/)和带令牌的安全访问链接。文档建议参考故障排除指南,并提供了可选应用扩展功能(包括移动端支持)。注意运行本地代理存在安全风险,建议加固系统配置。若需启用网络搜索功能,需配置Brave搜索API密钥。安装完成后会自动打开仪表盘,需保持浏览器标签页以控制OpenClaw服务。 阅读详情

相关推荐

来自工业界的知识库 RAG 服务(二),RagFlow 源码全流程深度解析

前面介绍过有道 QAnything 源码解析,通过深入了解工业界的知识库 RAG 服务,得到了不少调优 RAG 服务的新想法。因此本次趁热打铁,额外花费一点时间,深入研究了另一个火热的开源 RAG 服务RagFlow的完整实现流程,希望同样有所收获。首先依旧可以先从框架图入手,与常规的 RAG 架构进行一些比较可以看到右侧知识库被明显放大,同时最右侧详细介绍了文件解析的各种手段,比如OCR等,这些在常规的 RAG 中可能会作为一个不起眼的。

易迟的专栏 2万+

leetcode刷题(81)——85. 最大矩形

一、题目 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例: 输入: [ ["1","0","1","0","0"], ["1","0","1","1","1"], ["1","1","1","1","1"], ["1","0","0","1","0"] ] 输出: 6 二、思路——单调栈 利用 84. 柱状图中最大的矩形 来解决这道题。 看下面的橙色部分,每一幅图都和 84 题是一样的。 图片来自 详细通俗的思路分析,多解法 因此,我们求出

kezhou的博客 2368

linux离线安装nginx

linux离线安装nginx

zhang_130914036的博客 9347

【leetcode】84.柱状图中最大的矩形 (多种解法,java实现,单调栈)

84. 柱状图中最大的矩形 难度困难 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。 图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。 示例: 输入: [2,1,5,6,2,3] 输出: 10 方法一:暴力解法 这道问题的暴力解法比「接雨水」那道题要其实好想得多:可以枚举以每个柱形为高度的最大矩形的面积。 具

Viper的程序员修炼手册 964

BMS开发避坑指南:如何用ADBMS6815实现0.03%精度的电池采样?

本文深入解析了如何利用ADBMS6815等高精度AFE芯片,在车规级BMS开发中实现0.03%级别的电池电压采样精度。文章从芯片选型、硬件设计、软件配置、算法优化到系统验证,提供了一套完整的实战指南,帮助工程师系统性地提升BMS测量精度,从而保障电池安全、延长寿命并增强产品竞争力。

weixin_28314575的博客 134

【Boost5】Boost变换器的输入电容

节点的电流有3个,一个是来自电源输入的,由于我们把Vin看成理想电源以及线路的电感的存在,它可以近似看作是恒定的电流源Iin,一个是流向输入电容Cin的电流Icin,另外一个节点是电感L电流IL。电容电流波形在整个开关周期内的平均值为0,充电和放电在一个周期中各占1/2,在图中充电部分面积和放电部分面积相等,那么在充电或放电的电荷量Q=I*t,从图中可以看出,在一个周期内电容电流变化量是ΔIL,那在电容在充电1/2T周期中电流的变化量是1/2ΔIL。输入电容上的ESR也会随着电流变化,影响输入电压的变化。

qq_43416206的博客 3348

leetcode解题思路分析(十三)85-91题

最大矩形 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 在84题中,我们求了一个柱状图中最大矩形。而本题只要首先把矩阵改变为一个显示每列最大长度的柱状图,即可用84题的栈方法求解 class Solution { public: //leetcode 84那道题的求法 int maxArea(vector<int>&amp...

ty的博客 1131

傻瓜教程:使用GeoServer发布离线地图服务

一、离线地图下载 离线地图分为两种:一种叫“金字塔瓦片”数据,一种叫“矢量地图数据”。我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片;另外一种是手机上用来导航的,比如高德地图APP,也可以下载离线地图数据,这个就是矢量的。 卫星影像地图都是金字塔瓦片,无矢量数据。 因此,我们所说的离线地图下载通常都是指离线地图金字塔瓦片数据下载。 离线地图金字塔瓦片搭建的离线地图服务分很多种:一般有WEB方式,TMS、WMTS/WMS等等,不同的应用有不同...

米兰的小码农的博客 1万+

最大矩形

给定一个仅包含0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例: 输入: [ ["1","0","1","0","0"], ["1","0","1","1","1"], ["1","1","1","1","1"], ["1","0","0","1","0"] ] 输出: 6 解题思路: 1. 建立一个三维数组, vector<vecto...

qq_35692267的博客 1446

CANoe-vTESTstudio之Test Diagram编辑器

总之,CANoe-vTESTstudio的Test Diagram编辑器提供了一个直观且强大的工具,用于创建和管理测试用例。通过图形化的界面和丰富的功能,测试工程师可以更轻松地编写复杂的测试脚本,并有效地进行测试开发。在上面的示例中,我们创建了一个名为"MyTestCase"的测试用例,并定义了两个测试步骤"Step1"和"Step2"。在上面的示例中,我们在执行"Step1"之后使用条件语句来确定是否执行"Step2"。在每次迭代中,我们创建一个新的测试步骤,并根据迭代次数动态生成相应的日志和验证消息。

TcData的博客 248

YOLO26 多模态融合技术:RGB+红外/深度/雷达融合

YOLO(You Only Look Once)是一种流行的目标检测算法,其最大特点是快速且端到端地完成图像中所有目标的检测与分类任务。YOLO首次在2016年由Joseph Redmon等人提出,彻底改变了传统目标检测(如R-CNN系列)的思路,被广泛应用于自动驾驶、视频监控、工业质检等场景。

一键难忘的博客 3523

LeetCode 0085.最大矩形:单调栈

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

<font color="Pink">Tisfy的博客</font> 1285

OpenClaw Manager Pro - 可视化管理工具

OpenClaw Manager Pro 是一个现代化的 Web 管理界面,用于管理多个 OpenClaw Gateway 实例。🎨美观的界面:深色主题,渐变设计,现代化 UI📡实时监控:WebSocket 实时推送状态和日志🔧完整管理:创建、编辑、删除、启动、停止 Gateway📊多渠道支持:飞书、Telegram、Discord、Slack、微信、钉钉🧩技能管理:可视化配置 61+ 个技能🌍跨平台:支持 macOS、Linux、Windows使用自定义模型系统会自动在中创建},

Maynor的博客 3086

Leetcode 85. Maximal Rectangle 最大矩形 解题报告

1 解题思想这道题我是转化成上一道题来做的,对于每一行,看成给一个直方图在每一行上,首先按照直方图的方式进行统计,然后记录并更新最大,因此计算请看: Leetcode 84. Largest Rectangle in Histogram 最大矩形 解题报告2 原题Given a 2D binary matrix filled with 0’s and 1’s, find the largest

MebiuW的专栏 2810

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【LeetCode】 85. Maximal Rectangle 最大矩形(Hard)(JAVA)每日一题

【LeetCode】 85. Maximal Rectangle 最大矩形(Hard)(JAVA) 题目地址: https://leetcode.com/problems/maximal-rectangle/ 题目描述: Given a rows x cols binary matrix filled with 0’s and 1’s, find the largest rectangle containing only 1’s and return its area. Example 1: I

qq_16927853的博客 229

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode第85题_最大矩形

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

qq_40263592的博客 1204

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

算法37:最大矩形面积(力扣84、85题)---单调栈

数组压缩、单调栈

街头小瘪三的专栏 1098

LeetCode 84 and 85 problem

leetcode算法

2401_86718044的博客 991

[LeetCode] 85、最大矩形

题目描述 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例: 输入: [ ["1","0","1","0","0"], ["1","0","1","1","1"], ["1","1","1","1","1"], ["1","0","0","1","0"] ] 输出: 6 解题思路 这一题的算法本质上和84题Largest Recta...

aift的专栏 424

LeetCode 85:最大矩形

给定仅含0和1的二维矩阵,需找到1。O(n²m²)

m0_75126572的博客 1735

leetcode 85 最大矩形(单调栈解法)

单调栈解法 问题可以转换为leetcide 84题的单调栈解法。 思路就是建立跟84题一样的图。84题的图是怎么存的?定义一个heights数组,数组元素是高度。同理,遍历该题的每一行,建立一个类似的图,然后进行求解即可。 class Solution { public: int maximalRectangle(vector<vector<char>>& matrix) { if (matrix.size() == 0) return 0; //注

qq_52993545的博客 228

85. 最大矩形

85. 最大矩形 原始题目链接:https://leetcode.cn/problems/maximal-rectangle/ 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 解题思路: 这道题对于每行求解以改行为底,连续是1的高度,就可以退化为第84题,计算都是1的矩形的面积。 代码实现: class Solution: def max_area(self, heights): # heights

u013243296的博客 160

leetcode难题之Maximal Rectangle

一,题目简述 leetcode第85题,Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area. 在一个只含有0和1的二维矩阵中,找出只含有1的最大矩形并返回其面积。 二,题目分析 在解决这一道题之前,让...

lishinho的博客 281

个人记录-LeetCode 85. Maximal Rectangle

LeetCode

橡果生长记的博客 631

[LeetCode] 85. Maximal Rectangle

1. 题目描述 2. 解题报告 此题解法可完全按照[LeetCode] 84. Largest Rectangle in Histogram的思路来解,即,可以把 m x n 的矩阵看作是m个直方图来算,可以直接套用84题的代码。 转载于:https://www.cnblogs.com/xiaowuye/p/10830642.ht...

weixin_30568715的博客 90

hot100打卡——day17

本文介绍了几个二叉树和数组相关的算法题解。98题验证二叉搜索树通过中序遍历检查序列是否递增;96题使用动态规划计算不同二叉搜索树的数量,递推公式为dp[i] += dp[j-1]*dp[i-j];94题实现二叉树的中序遍历。84和85题都利用单调栈求最大矩形面积:84题直接处理柱状图,85题将二维矩阵转化为柱状图后处理。核心思路都是通过维护单调栈来高效找到每个元素左右第一个比它小的边界,从而计算最大面积,时间复杂度优化到O(n)。

2301_80275666的博客 795
上一篇: leetcode(84)柱状图中最大的矩形——栈
下一篇: leetcode(94) 二叉树的中序遍历——莫里斯遍历(非传统递归方法)
softwareX4
博客等级 码龄9年 21粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值