力扣_数组27—最大矩形

题目

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

思路

  • 分别计算以第 i i i 行为底的最大矩形
  • 计算以第 i i i 行为底的最大矩形
    • 借用“柱状图中最大的矩形”的计算思路
    • 遍历第 i i i 行,若 m a t r i x [ i ] [ j ] = = 0 matrix[i][j] == 0 matrix[i][j]==0,则 j j j 处柱子高度为 0 0 0;若 m a t r i x [ i ] [ j ] = = 1 matrix[i][j] == 1 matrix[i][j]==1,则 j j j 处柱子高度为 m a t r i x [ i − 1 ] [ j ] matrix[i-1][j] matrix[i1][j] 处柱子高度 + 1 +1 +1
    • 例如: m a t r i x = [ [ " 1 " , " 0 " , " 1 " , " 0 " , " 0 " ] , [ " 1 " , " 0 " , " 1 " , " 1 " , " 1 " ] , [ " 1 " , " 1 " , " 1 " , " 1 " , " 1 " ] , [ " 1 " , " 0 " , " 0 " , " 1 " , " 0 " ] ] matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]] matrix=[["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]
      • 第一层柱状图的高度[“1”,“0”,“1”,“0”,“0”]
      • 第二层柱状图的高度[“2”,“0”,“2”,“1”,“1”]
      • 第三层柱状图的高度[“3”,“1”,“3”,“2”,“2”]
      • 第四层柱状图的高度[“4”,“0”,“0”,“3”,“0”]

代码

class Solution {
public:int maximalRectangle(vector<vector<char>>& matrix) {int m = matrix.size();int n = matrix[0].size();int ret = 0;vector<int> row(n, 0);for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(matrix[i][j] == '0')row[j] = 0;elserow[j] += 1;}ret = max(ret, largestRectangleArea(row));}return ret;}int largestRectangleArea(vector<int>& heights){int n = heights.size();stack<int> stk;stk.push(-1);vector<int> l2r;int ret = 0;for(int i = 0; i < n; i++){while(stk.top() != -1 && heights[stk.top()] >= heights[i]){ret = max(ret, heights[stk.top()]*(i-l2r[stk.top()]-1));stk.pop();}l2r.push_back(stk.top());stk.push(i);}while(stk.top() != -1){ret = max(ret, heights[stk.top()]*(n-l2r[stk.top()]-1));stk.pop();}return ret;}
};

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

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

相关文章

Graphpad Prism10.1.2(324) 安装教程 (含Win/Mac版)

GraphPad Prism GraphPad Prism是一款非常专业强大的科研医学生物数据处理绘图软件&#xff0c;它可以将科学图形、综合曲线拟合&#xff08;非线性回归&#xff09;、可理解的统计数据、数据组织结合在一起&#xff0c;除了最基本的数据统计分析外&#xff0c;还能自动生成统…

最新AI绘画Midjourney绘画提示词Prompt大全

一、Midjourney绘画工具 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭…

基础知识篇(三)Activity启动模式

安卓是采用任务栈来管理Activity的&#xff0c;默认情况下多次启动同一个Activity系统会重复创建这个Activity的实例&#xff0c;并把每个实例依次入栈。为了避免Activity实例的重复创建、应付特殊的场景、安卓为Activity设计了启动模式。 standard - 标准模式singleTop - 栈顶…

【sklearn练习】模型评估

一、交叉验证 cross_val_score 的使用 1、不用交叉验证的情况&#xff1a; from __future__ import print_function from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifieriris…

Leetcod面试经典150题刷题记录 —— 数学篇

Leetcode面试经典150题刷题记录-系列Leetcod面试经典150题刷题记录——数组 / 字符串篇Leetcod面试经典150题刷题记录 —— 双指针篇Leetcod面试经典150题刷题记录 —— 矩阵篇Leetcod面试经典150题刷题记录 —— 滑动窗口篇Leetcod面试经典150题刷题记录 —— 哈希表篇Leetcod…

什么是泛型约束?

泛型约束是一种在泛型类型参数上定义约束条件的机制&#xff0c;它可以帮助我们限制泛型类型参数的取值范围。 在 TypeScript 中&#xff0c;可以使用 extends 关键字来定义泛型类型参数的约束条件。例如&#xff0c;我们可以定义一个泛型函数&#xff0c;要求它的类型参数必须…

ubuntu系统(9):ubuntu 20.02安装pydot

目录 警告信息 1、确保安装了Python和pip 2、安装Graphviz软件包 3、pip安装pydot 验证 在gem5中&#xff0c;pydot库用于生成图形化输出&#xff0c;特别是生成.dot文件和相关的图像文件&#xff0c;如PDF、PNG等。它与gem5结合使用的一个常见用途是生成系统结构图、内存…

基础篇_面向对象(什么是对象,对象演化,继承,多态,封装,接口,Service,核心类库,异常处理)

文章目录 一. 什么是对象1. 抽取属性2. 字段默认值3. this4. 无参构造5. 抽取行为 二. 对象演化1. 对象字段演化2. 对象方法演化3. 贷款计算器 - 对象改造4. 静态变量5. 四种变量 三. 继承1. 继承语法2. 贷款计算器 - 继承改造3. java 类型系统4. 类型转换1) 基本类型转换2) 包…

【QT学习十】QListView

目录 一、QListView 概述 二、QListView 的主要特性包括&#xff1a; 三、基本用法 1、创建及基本属性设置 2、添加显示的值 3、获取ListView中的内容 4、列表模式和图标模式之间切换 5、自定义 四、提高性能 五、总结 一、QListView 概述 QListView 是一个用于显示列…

【算法分析与设计】最大子数组和

题目 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] 输出&a…

讯飞智文利用人工智能技术帮助用户快速生成Word和PPT文档

网址 https://zhiwen.xfyun.cn/ 讯飞智文是一个由科大讯飞股份有限公司提供的在线服务&#xff0c;它利用人工智能技术帮助用户快速生成Word文档和PPT演示文稿。这个平台的特点包括&#xff1a; 一键生成文档&#xff1a;用户可以通过输入一句话主题或长文本&#xff0c;快速…

硬核加码!星邦蓝助力全球运力最大固体火箭“引力一号”海上首飞

继助力我国最大固体运载火箭“力箭一号”首飞后&#xff0c;星邦蓝再次有幸参与和见证了全球运力最大的固体火箭“引力一号”首次成功发射。 今日&#xff0c;全球运力最大的固体火箭“引力一号”从山东海阳附近海域完成首次发射&#xff0c;刷新世界最大固体运载火箭纪录&…

2024年抖音小店,三大运营趋势,新手商家注意了!

大家好&#xff0c;我是电商糖果 每年都有大量的商家入驻抖音小店&#xff0c;小店的运营趋势每年也都会有变化。 2024年抖音小店依旧是平台重点扶持的项目&#xff0c;所以&#xff0c;今年依旧有大量的商家想要入驻。 这篇文章糖果就给大家总结了2024年&#xff0c;抖音小…

关于鸿蒙的ArkUI的自我理解

先不说好不好上手 一些软件必要的基础概念了解 ①瓦片地图 --无或未找到 ②视频播放功能 --未找到能播放直播流&#xff08;找到个 ohos/ijkplayer不知如何&#xff09; ③支付功能 微信无 支付宝的是java代码写得&#xff0c;AskUI中如何调用 ④推送 --自己应该有吧 ⑤长…

【一周安全资讯0106】国家标准《信息安全技术 网络安全信息报送指南》正式发布;全球1100万SSH服务器面临“水龟攻击”威胁

要闻速览 1、国家标准GB/T 43557-2023《信息安全技术 网络安全信息报送指南》发布 2、《未成年人网络保护条例》元旦起施行 织密未成年人网络保护立体“安全网” 3、深圳证监局&#xff1a;证券期货经营机构应建立健全网络安全应急处置机制 4、黑客大规模恶意注册与ChatGPT相似…

CKS考试心得

考前须知&#xff1a; 1、一共16题&#xff0c;100分66分及格&#xff0c;考试有两次机会 考试准备&#xff1a; 1、护照或或者包含英文名字证件 2、要选择工作日的早上或者晚上考试&#xff0c;千万不要选择周末去考&#xff0c;否则卡到怀疑人生&#xff0c;影响考试结果…

全面解析微服务

导读 微服务是企业应用及数据变革升级的利器&#xff0c;也是数字化转型及运营不可或缺的助产工具&#xff0c;企业云原生更离不开微服务&#xff0c;同时云原生的既要最大化发挥微服务的价值&#xff0c;也要最大化弥补微服务的缺陷。本文梳理了微服务基础设施组件、服务网格、…

C++重新认知:拷贝构造函数

一、什么是拷贝构造函数 对于简单变量来说&#xff0c;可以轻松完成拷贝。 int a 10; int b a;但是对于复杂的类对象来说&#xff0c;不仅存在变量成员&#xff0c;也存在各种函数等。因此相同类型的类对象是通过拷贝构造函数来完成复制过程的。 #include<iostream>…

基于 TensorFlow.js 构建垃圾评论检测系统

基于 TensorFlow.js 构建垃圾评论检测系统。 准备工作 在过去的十年中,Web 应用变得越来越具有社交性和互动性,而即使是在中等热门的网站上,也有数万人可能实时对多媒体、评论等的支持。这也让垃圾内容发布者有机会滥用此类系统,将不太令人满意的内容与其他人撰写的文章、视…

小程序必看系列!什么是抖音小程序?抖音小程序怎么制作?

随着移动互联网的飞速发展&#xff0c;抖音已经成为了一个广受欢迎的短视频平台。在这个平台上&#xff0c;用户可以分享自己的生活点滴、表达自己的观点&#xff0c;甚至还能通过小程序来丰富自己的社交体验。那么&#xff0c;如何制作抖音小程序呢&#xff1f; 一、抖音小程…