84题和85五题 基本是一样的,先说84题

84--柱状图中最大的矩形( Largest Rectangle in Histogram)



思路很简单,通过循环,分别判断第 i 个柱子能够延展的长度len,最后把len*heights[i] 就是延展开的面积,最后做比对,得出最大。

    public int largestRectangleArea(int[] heights) {
int ans=0;
for(int i=0;i<heights.length;i++) {
int len=1,left=i,right=i;
while(left>0&&heights[--left]>=heights[i]) len++;//向左延展
while(right<heights.length-1&&heights[++right]>=heights[i]) len++; //向右延展
ans=Math.max(ans,heights[i]*len); //更新最大值
}
return ans;
}

这个方法效率不是很高,但是是最简单,也是最容易理解的。、

85--最大矩形(Maximal Rectangle)

这一题的思路与上一题相同。主要是第一步。

首先我们先建立一个大小和Matrix相同的大小的二维数组map

        int Y=matrix.length;
int X=matrix[0].length;
int[][] map=new int[Y][X];
for(int y=0;y<Y;y++) {
for(int x=0;x<X;x++) {
if(matrix[y][x]=='1') {
/*假如matrix[y][x]=='1',就把当前位置的map值,加上map[y-1][x]的值,如
000 000
111 -》 111
101 202*/
if(y>0) {
map[y][x]=map[y-1][x]+1;
}else {
map[y][x]=1;
}
}
}
}

通过向下累加的方式,更新map,然后在对每一行的map[y],进行如84题的操作,就可以得出最大的面积

    public int maximalRectangle(char[][] matrix) {
if(matrix.length==0||matrix[0].length==0) return 0;
int Y=matrix.length;
int X=matrix[0].length;
int[][] map=new int[Y][X];
for(int y=0;y<Y;y++) {
for(int x=0;x<X;x++) {
if(matrix[y][x]=='1') {
if(y>0) {
map[y][x]=map[y-1][x]+1;
}else {
map[y][x]=1;
}
}
}
}
int ans=0;
//这里和84题一样
for(int[] nums:map) {
for(int i=0;i<nums.length;i++) {
int len=1,left=i,right=i;
while(left>0&&nums[--left]>=nums[i]) len++;
while(right<nums.length-1&&nums[++right]>=nums[i]) len++;
ans=Math.max(ans,nums[i]*len);
}
}
return ans;
}

就是这样

LeetCode 84--柱状图中最大的矩形( Largest Rectangle in Histogram) 85--最大矩形(Maximal Rectangle)的更多相关文章

  1. LeetCode 84. 柱状图中最大的矩形(Largest Rectangle in Histogram)

    题目描述 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的 ...

  2. LeetCode 84. 柱状图中最大的矩形(Largest Rectangle in Histogram)

    84. 柱状图中最大的矩形 84. Largest Rectangle in Histogram

  3. Java实现 LeetCode 84 柱状图中最大得矩形

    84. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的 ...

  4. leetCode 84.Largest Rectangle in Histogram (最大矩形直方图) 解题思路和方法

    Given n non-negative integers representing the histogram's bar height where the width of each bar is ...

  5. 【Leetcode】84. Largest Rectangle in Histogram 85. Maximal Rectangle

    问题描述: 84:直方图最大面积. 85:0,1矩阵最大全1子矩阵面积. 问题分析: 对于84,如果高度递增的话,那么OK没有问题,不断添加到栈里,最后一起算面积(当然,面积等于高度h * disPo ...

  6. leetcode 84. 柱状图中最大的矩形 JAVA

    题目: 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高 ...

  7. [LeetCode] 84. 柱状图中最大的矩形

    题目链接 : https://leetcode-cn.com/problems/largest-rectangle-in-histogram/ 题目描述: 给定 n 个非负整数,用来表示柱状图中各个柱 ...

  8. 73.Largest Rectangle in Histogram(最大矩形)

    Level:   Hard 题目描述: Given n non-negative integers representing the histogram's bar height where the ...

  9. LeetCode 84 | 单调栈解决最大矩形问题

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题第52篇文章,我们一起来看LeetCode第84题,Largest Rectangle in Histogram( ...

  10. [LintCode] Maximal Rectangle 最大矩形

    Given a 2D boolean matrix filled with False and True, find the largest rectangle containing all True ...

随机推荐

  1. 完整SpringBoot Cache整合redis缓存(二)

    缓存注解概念 名称 解释 Cache 缓存接口,定义缓存操作.实现有:RedisCache.EhCacheCache.ConcurrentMapCache等 CacheManager 缓存管理器,管理 ...

  2. 用git提交新项目到github

    1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...

  3. 如何编写出高质量的 equals 和 hashcode 方法?

    什么是 equals 和 hashcode 方法? 这要从 Object 类开始说起,我们知道 Object 类是 Java 的超类,每个类都直接或者间接的继承了 Object 类,在 Object ...

  4. Hadoop核心组件之YARN

    YARN概述 Yet Another Resource Negotiator:另外资源的协调者 通用的资源管理系统 为上层应用提供统一的资源管理和调度 操作系统级别的调度框架,可以让各种计算框架运行在 ...

  5. ubuntu linux 修改ip 超扎心。

    老大说“终于搞定了,快记下来,不然以后又忘了”(露出慈母般的微笑) 参考地址:https://jingyan.baidu.com/article/adc815139ddcc4f723bf7339.ht ...

  6. [PHP] php, apache, VS Code安装与配置

    1. 下载

  7. Scala 占位符在REPL和Eclipse/IDEA中初始化变量问题

    占位符在REPL和Eclipse/IDEA中初始化变量问题: 占位符初始化,如果是局部变量,都会报错!只能在全局变量中使用! REPL: Eclipse: IDEA: 如果是类的属性,却就是对的.

  8. Docker5-docker私库的搭建及常用方法-harbor-registry方式

    一.简介 1.官方已经提供registry镜像为什么还需要用harbor 1)registry缺少镜像清理机制,可以push但是不能删除,耗费空间 2)registry缺乏相应的扩展机制 3)harb ...

  9. FFmpeg(七)音频的播放

    一.Open SL ES播放声音流程 简单说明 Open SL ES是android内部的接口,本身可以解码音频,但是我们用FFmpeg,,也可以来录音 . SL引擎:上下文 混音器:两路声音的混合 ...

  10. QR 码详解(上)

    关于二维码,我查了下资料,现在基本都在用日本的 QR 码,PDF417以及汉信码日常基本看不到.原因在于各方面来说,的确是 QR 码最为优秀.所以我准备写一篇介绍 QR 码的文章,如果是写书,可能不方 ...