最大矩形

  • 题目
  • 思路与算法
  • 代码实现
  • 复杂度分析

题目

思路与算法

  1. 直接暴力即可:从第一行开始遍历,找到当前为1的位置,此时判断当前行的后面的列,找到当前行下一个不为1的列时获得当前最大宽度,然后在此宽度下进行行的遍历,下面的行对应的这几列数字,如果出现0,则直接返回上一行结束时的最大值,如果没有出现0,则max更新为:增加当前宽度后的值。按照此思路来实现即可。

代码实现

class Solution {public int maximalRectangle(char[][] matrix) {// 初始化变量int res = 0;// 从头开始遍历,直到找到‘1’为止for (int i = 0; i < matrix.length; i++){for (int j = 0; j < matrix[0].length; j++){// 逢1开始获取当前最大宽度if(matrix[i][j] == '1'){// 获取到当前列数,存入tmp,作为指针int tmp = j;// 移动指针判断是否为最大宽度for (;tmp < matrix[0].length;tmp++){if(matrix[i][tmp] == '1'){res = Math.max(res,getMax(i,j,tmp,matrix));}else{break;}}}}}// 返回结果变量return res;}// 获取到当前宽度下的最大矩形面积。private static int getMax(int i,int j,int tmp,char[][] matrix){// 获取宽度int len = tmp - j + 1;// 初始化结果变量int aera = len;// 从当前位置的下一行开始遍历for (int k = i+1; k < matrix.length;k++){for (int l = j; l <= tmp; l++){if(matrix[k][l] == '0'){return aera;}}aera += len;}return aera;}
}

复杂度分析

时间复杂度 空间复杂度
O(m²n²) O(mn)

20200327:最大矩形(leetcode85)相关推荐

  1. 最大矩形—leetcode85

    给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积. 示例: 输入: [   ["1","0","1", ...

  2. 【大总结3】leetcode解题总览(算法、剑指offer、SQL、多线程、shell)

    3/22更新 剑指offer 题目链接 建议大部分题都会做,都能比较快速且准确的写出来.关于做题方式,我的建议是:一道一道刷即可,因为难度一般,不用系统的学习什么知识,遇到实在不会的就跳过即可. 我这 ...

  3. leetcode解题总览

    3/22更新 剑指offer 题目链接 建议大部分题都会做,都能比较快速且准确的写出来.关于做题方式,我的建议是:一道一道刷即可,因为难度一般,不用系统的学习什么知识,遇到实在不会的就跳过即可. 我这 ...

  4. leetcode85. 最大矩形

    给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积. 示例: 输入: [   ["1","0","1", ...

  5. Leetcode--85. 最大矩形

    给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积. 示例: 输入: [   ["1","0","1", ...

  6. LeetCode--85.最大矩形(单调栈)

    最大矩形(单调栈) 1. 题目描述 2. 题目分析 3. C语言实现 1. 题目描述 难度:困难 2. 题目分析 这道题目似曾相识啊,最大矩形面积的问题我们在LeetCode84.柱状图中最大的矩形也 ...

  7. [Swift]LeetCode85. 最大矩形 | Maximal Rectangle

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  8. leetCode85.最大矩形

    给定填充0和1的2D二进制矩阵,找到仅包含1的最大矩形并返回其区域. Example: Input: [ ["1","0","1",&quo ...

  9. 伍六七带你学算法 入门篇-矩形重叠

    力扣解题-----每日一题-836 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标. 如果相交的面积为正,则称两矩形 ...

最新文章

  1. 周信东c语言实验二实验报告,周信东主编最新版C语言程序设计基础实验一实验报告.doc...
  2. iOS Block实现探究
  3. 川大 NLP 博士生被华为以 200 万年薪录用!分享以下科研及论文写作经验...
  4. 【 Linux 】Linux下如何退出vim的一些常用命令总结
  5. 文件服务器错误用友,用友U8.60用友服务器登陆不了,提示文件错误
  6. 程序编译出错,缺少类型说明符;语法错误 : 缺少“;”(在标识符“PVOID64”的前面)
  7. 滚动视差?CSS 不在话下
  8. Redis 集群规范
  9. 第5章 Python 数字图像处理(DIP) - 图像复原与重建13 - 空间滤波 - 线性位置不变退化 - 退化函数估计、运动模糊函数
  10. ORACLE将查询字段指定为某种类型
  11. TensorFlow自带例子
  12. Python批量下载电子邮件附件并汇总合并Excel文件
  13. 使用SQL Server数据工具和Visual Studio Online进行连续部署
  14. python-成都Python课程
  15. pytorch搭建LSTM神经网络预测电力负荷
  16. 知识词典 »网站地图
  17. 国际大牌在中国的故事
  18. 3gqq幻想西游〓宠物、副本、攻略、攻城、极品怪〓
  19. 迈向企业开发Spring详解!
  20. 66.电视噪音动画特效

热门文章

  1. 抵扣个税3K+,这个考试,70%程序员都报了!
  2. 华为自研操作系统最快秋季面市;马化腾谈华为事件;微信支付回应遭封禁 | 极客头条...
  3. 微信帝国进化史:一个通讯工具如何在八年内制霸互联网?
  4. OPPO 推出 10 亿引力计划,全力构建智能化服务生态
  5. 阿里布局无人驾驶;滴滴成立汽车服务;“京东 AI 天团”首亮相| CSDN极客头条
  6. 百度 AI 再发福利!不仅有实战营,还有手把手教学的“深度学习公开课”
  7. Android程序设计报告总结,Android编程常用技巧实例总结
  8. php外壳函数,php 方法笔记
  9. linux 自启动脚本顺序,(linux开机启动脚本的顺序.doc
  10. python中执行shell命令_python中执行shell命令的几个方法小结-阿里云开发者社区