85.最大矩形

news2024/11/24 12:57:06

在这里插入图片描述
在这里插入图片描述
单调栈,时间复杂度o(mn),空间复杂度o(mn)

class Solution {
public:
    int maximalRectangle(vector<vector<char>>& matrix) {
        int m=matrix.size();
        if(m==0){
            return 0;
        }
        int n=matrix[0].size();
        //记录矩阵中每个元素左边连续1的数量
        vector<vector<int>> left(m,vector<int>(n,0));
        for(int i=0;i<m;i++){
            for(int j=0;j<n;++j){
                if(matrix[i][j]=='1'){
                    left[i][j]=(j==0?0:left[i][j-1])+1;
                }
            }
        }

        int ret=0;
        //对于每一列,使用基于柱状图的方法,leetcode84
        for(int j=0;j<n;j++){
            vector<int> up(m,0),down(m,0);
            stack<int> stk;
            for(int i=0;i<m;++i){
                while(!stk.empty()&&left[stk.top()][j]>=left[i][j]){
                    stk.pop();
                }
                up[i]=stk.empty()?-1:stk.top();
                stk.push(i);
            }

            stk=stack<int>();
            for(int i=m-1;i>=0;i--){
                while(!stk.empty()&&left[stk.top()][j]>=left[i][j]){
                    stk.pop();
                }
                down[i]=stk.empty()?m:stk.top();
                stk.push(i);
            }

            for(int i=0;i<m;++i){
                int height=down[i]-up[i]-1;
                int area=height*left[i][j];
                ret=max(ret,area);
            }
        }
        return ret;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1067561.html

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

相关文章

如何开发一款高效便捷的搬家服务小程序

随着互联网的发展&#xff0c;小程序已成为各行各业重要的业务推广和用户服务平台。对于搬家行业而言&#xff0c;开发一款高效便捷的搬家服务小程序具有巨大的市场潜力。本文将为您详细介绍如何开发一款这样的搬家服务小程序。 一、进入乔拓云网后台 在开始制作搬家服务小程序…

番外项目---Vim编辑器

Task01: 1.在/tmp目录下建立一个名为mytest的目录&#xff0c;进入mytest目录当中; 2.将/etc/man_db.conf复制到上述目录下面&#xff0c;使用vim打开目录下的man_db.conf文件; 3.在vim中设定行号&#xff0c;移动到第58行&#xff0c;向右移动15个字符&#xff0c;请问你看到…

文件丢失怎么找回?收藏好这3个方法!

“我真的要哭了&#xff0c;不小心把一些很重要的文件弄丢了&#xff0c;现在不知道该怎么办了&#xff0c;有没有什么方法可以把这些文件找回来呀&#xff1f;大家快帮帮我吧&#xff01;” 在日常办公中&#xff0c;很多用户都会习惯性的把一些重要的文件和数据保存在电脑上。…

UE4游戏客户端开发进阶学习指南

前言 两年多前写过一篇入门指南&#xff0c;教大家在短时间内快速入门UE4的使用&#xff0c;在知乎被很多人收藏了。如今鸡佬使用UE快三年了&#xff0c;是时候更新一下进阶版本的学习指南。本文对于读者的要求&#xff1a; 有一定的C基础已经入门UE&#xff0c;能够用蓝图和…

AD 域控使用回收站批量还原用户

一、Read me. 测试版本winserver 2019&#xff0c;其余版本请查阅文档或者实际操作尝试。 前提需要预先开启回收站功能&#xff01;&#xff01;&#xff01;&#xff01; 没有开启可以点&#xff0c;开启后则变灰色。 如果是人为操作并且没有开启这个功能&#xff0c;那么不…

【算法训练-数组 四】【数组合并】:合并两个有序数组

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【数组组合】&#xff0c;使用【数组】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

【小黑送书—第三期】>>《深入浅出SSD》

近年来国家大力支持半导体行业&#xff0c;鼓励自主创新&#xff0c;中国SSD技术和产业良性发展&#xff0c;产业链在不断完善&#xff0c;与国际厂商的差距逐渐缩小。但从行业发展趋势来看&#xff0c;SSD相关技术仍有大幅进步的空间&#xff0c;SSD相关技术也确实在不断前进。…

localhost和127.0.0.1都可以访问项目,但是本地的外网IP不能访问

使用localhost和127.0.0.1都可以访问接口&#xff0c;比如&#xff1a; http://localhost:8080/zhgl/login/login-fy-list或者 http://127.0.0.1:8080/zhgl/login/login-fy-list返回json {"_code":10000,"_msg":"Success","_data":…

数据结构与算法-循环链表、双向链表

我们这里接着上一篇单链表继续往下深入学习循环链表、双向链表。 链表 &#x1f388;3.循环链表&#x1f52d;3.1循环链表的概念&#x1f52d;3.2循环链表的基本操作&#x1f50e;3.2.1创建空表&#x1f50e;3.2.2插入操作&#x1f50e;3.2.3删除操作 &#x1f388;4.双向链表&…

图的存储-链式前向星

链式前向星 链式前向星是民间OI选手发明的数据结构。用另一个词解释它就是&#xff1a;用数组模拟的邻接链表。最核心的思想就是用数组模拟链表。 &#xff08;1&#xff09;前向星 前向星就是边的集合。一个图&#xff0c;只要将它的所有边存储起来&#xff0c;就能知道它的…

为什么append到父节点后的子节点发生修改,父节点打印出来的也会变化

今天走查前端代码&#xff0c;发现历史代码写出来的不规范&#xff0c;但是他还是在生产运行了很久的代码&#xff0c;仔细思量后发现&#xff0c;其实原理是对的&#xff0c;只是看起来不美观&#xff0c;不易读而已。 废话不说&#xff0c;先上demo代码 <!DOCTYPE html&g…

【Verilog 教程】7.1Verilog 除法器设计

除法器原理&#xff08;定点&#xff09; 和十进制除法类似&#xff0c;计算 27 除以 5 的过程如下所示&#xff1a; 除法运算过程如下&#xff1a; (1) 取被除数的高几位数据&#xff0c;位宽和除数相同&#xff08;实例中是 3bit 数据&#xff09;。 (2) 将被除数高位数据与…

实时选品系统实现的难点

实时选品系统是一个涉及到多个领域的复杂系统&#xff0c;需要兼顾数据挖掘和分析、推荐算法、机器学习、大数据处理等多方面的技术&#xff0c;才能实现高效、准确和可扩展的功能。 以下是实现实时选品系统时可能遇到的难点&#xff1a; 数据量大&#xff1a;实时选品系统需要…

无需公网IP,企业如何访问私有云?

企业的日常办公中已经习惯利用网盘或在线传输服务来进行文件传输和分享&#xff0c;面对一系列层出不穷的数据泄露和黑客行为&#xff0c;企业也越来越担心隐私泄露的问题&#xff0c;并寻找真正存储私有化的解决方案。某企业的总部在北京&#xff0c;在上海还有2处办公室&…

云服务器能干什么?腾讯云服务器的几十种玩法

腾讯云服务器价格很便宜尤其是轻量应用服务器&#xff0c;搞一台云服务器可以用来干嘛&#xff1f;云服务器的用途是很广的&#xff0c;现在轻量应用服务器2核2G3M、2核2G4M、4核8G12M等配置&#xff0c;百元的价格&#xff0c;买一台云服务器后可以做什么&#xff1f;拿来搭建…

PYTHON计算CPK及规范限合格率,绘制直方图概率密度曲线

CPK&#xff08;过程能力指数&#xff09;是一个用于衡量一个过程的稳定性和一致性的统计指标&#xff0c;特别用于制造业和质量管理中。它衡量了一个过程的变异性与规范界限的关系&#xff0c;帮助确定过程是否能够产生合格的产品或服务。 正态分布假设&#xff1a;CPK的计算…

多地智能停车场系统,如何实现数据互联互通?

某公司是从事嵌入式工控车牌自动识别系统、RFID蓝牙远距离读写系列、RFID电子标签系列、智能卡停车场、门禁一卡通智能管理系统、公务车派遣系统、运输车统计系统设备的开发、设计、制造、安装、调试及售后服务的企业。在智能卡停车场系统设备、人员通道闸设备方面有多项国家专…

通过Python脚本+Jekins实现项目重启

文章目录 一、需求二、分析三、实现公共代码单个服务版本1、写死某个服务2、支持服务单选 多服务版本最终实现效果将Python程序转换为桌面可执行文件&#xff08;.exe&#xff09; 一、需求 微服务项目&#xff0c;服务很多&#xff0c;重启服务&#xff0c;基本都是通过Jekin…

【微服务】RedisSearch 使用详解

目录 一、RedisJson介绍 1.1 RedisJson是什么 1.2 RedisJson特点 1.3 RedisJson使用场景 1.3.1 数据结构化存储 1.3.2 实时数据分析 1.3.3 事件存储和分析 1.3.4 文档存储和检索 二、当前使用中的问题 2.1 刚性数据库模式限制了敏捷性 2.2 基于磁盘的文档存储导致瓶…

数学题目大合集 1

文章目录 建议这个题目集适合什么人?小剧场题目集M 题目 1算式法 1法 2M 题目 2算法分解质因数因数个数因数和因数积倒数和答M 题目 3算式解析HM 题目 4算式复习分解(利用“简单”数学)解析总结反馈建议 码字不易,还望关注点赞鼓励! 每个数学题目大合集都有 4 道题,题目…