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

Leetcode85

题目描述

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

解题思路

动态规划的思想,记录每一个位置向上能到达的最大高度,和向左能到达的最大宽度。
在一个点进行遍历时,向左走该点的最大宽度,
每走一步记录当前的最大高度并计算此时的最大面积。

代码实现

class Solution {public int maximalRectangle(char[][] matrix) {int m=matrix.length;if(m == 0) return 0;int n=matrix[0].length;int max=0;int[][][] dp=new int[m][n][2];// 0-> width 1->heightif(matrix[0][0]=='1'){dp[0][0][0]=1;dp[0][0][1]=1;max=1;}for (int i=1;i<n;i++){if(matrix[0][i]=='1'){dp[0][i][0]=dp[0][i-1][0]+1;dp[0][i][1]=1;max=Math.max(max,dp[0][i][0]);}}for (int i=1;i<m;i++){if(matrix[i][0]=='1'){dp[i][0][1]=dp[i-1][0][1]+1;dp[i][0][0]=1;max=Math.max(max,dp[i][0][1]);}}for (int i=1;i<m;i++){for (int j=1;j<n;j++){if(matrix[i][j]=='1'){dp[i][j][0]=dp[i][j-1][0]+1;dp[i][j][1]=dp[i-1][j][1]+1;int width=dp[i][j][0],height=dp[i][j][1],minHeight=height;for (int k=1;k<=width;k++){minHeight=Math.min(minHeight,dp[i][j-k+1][1]);max=Math.max(max,k*minHeight);}}}}return max;}
}

相关文章:

  • 软件测试笔记
  • IPv6 中 MAC 33:33 的由来
  • VisualBox 虚拟机 Ubunut 18.04 在大显示器上黑屏的问题
  • 【LinuxC语言】网络编程的本质
  • 动态ARP
  • TCP 协议详解:三次握手与四次挥手
  • 一篇快速教你如何创建专业级数据可视化库
  • 开启数字新纪元:全球首款开源AI女友,你的私人数字伴侣
  • 基于STM32的智能工厂环境监测系统
  • 跌倒识别:守护公共安全的AI技术应用场景-免费API调用
  • Spring Boot事件监听使用指南
  • 【鸿蒙】创建第⼀个鸿蒙项⽬
  • 分布式训练框架
  • Spring Boot启动与运行机制详解:初学者友好版
  • 51单片机定时器中断配置
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 2017-08-04 前端日报
  • CentOS 7 修改主机名
  • Fastjson的基本使用方法大全
  • Hibernate最全面试题
  • k8s如何管理Pod
  • LeetCode算法系列_0891_子序列宽度之和
  • maya建模与骨骼动画快速实现人工鱼
  • npx命令介绍
  • Phpstorm怎样批量删除空行?
  • python_bomb----数据类型总结
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Vue2.0 实现互斥
  • zookeeper系列(七)实战分布式命名服务
  • 高程读书笔记 第六章 面向对象程序设计
  • 什么软件可以剪辑音乐?
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 项目管理碎碎念系列之一:干系人管理
  • 一个项目push到多个远程Git仓库
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • (分享)自己整理的一些简单awk实用语句
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (三)elasticsearch 源码之启动流程分析
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (五)Python 垃圾回收机制
  • (一)Neo4j下载安装以及初次使用
  • (译)2019年前端性能优化清单 — 下篇
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)scrum常见工具列表
  • (转)winform之ListView
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • 、写入Shellcode到注册表上线
  • .NET 反射的使用
  • .Net 执行Linux下多行shell命令方法
  • .net对接阿里云CSB服务
  • .net流程开发平台的一些难点(1)
  • /dev/sda2 is mounted; will not make a filesystem here!