博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 85. Maximal Rectangle
阅读量:5092 次
发布时间:2019-06-13

本文共 1281 字,大约阅读时间需要 4 分钟。

原题链接在这里:

题目:

Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area.

For example, given the following matrix:

1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0

Return 6.

题解:

用数组heights存储一行中值为1的点的最大高度,然后像算这一行能产生的最大面积maxRec.

Time Complexity: O(m*n). m = matrix.length. n = matrix[0].length.

Space: O(n).

AC Java:

1 class Solution { 2     public int maximalRectangle(char[][] matrix) { 3         if(matrix == null || matrix.length == 0 || matrix[0].length == 0){ 4             return 0; 5         } 6          7         int res = 0; 8         int m = matrix.length; 9         int n = matrix[0].length;10         int [] heights = new int[n];11         for(int i = 0; i
stk = new Stack
();30 stk.push(-1);31 for(int i = 0; i
=heights[i]){33 int h = heights[stk.pop()];34 res = Math.max(res, h*(i-stk.peek()-1));35 }36 37 stk.push(i);38 }39 40 while(stk.peek() != -1){41 res = Math.max(res, heights[stk.pop()]*(heights.length-stk.peek()-1));42 }43 44 return res;45 }46 }

类似.

转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/4824942.html

你可能感兴趣的文章
编译安装dropbear
查看>>
手动编译Spring4.2源码,以及把源码导入myEclipse中
查看>>
ibatis插入列表
查看>>
struts2 tutor
查看>>
计算器
查看>>
生成和解析二维码(zxing)
查看>>
贪心算法总结
查看>>
APP推广运营经验总结
查看>>
非阻塞IO发送http请求
查看>>
为什么div设置其border无效?
查看>>
给博客园添加live2d看板娘(转)
查看>>
防抖 && 节流
查看>>
窗口实训1
查看>>
LintCode: Convert Sorted Array to Binary Search Tree With Minimal Height
查看>>
博客开通罗
查看>>
在vue中使用axios发送post请求,参数方式
查看>>
POJ 1026 Cipher
查看>>
Android解决异常apk on device '0292bea1': Unable to open sync connection!
查看>>
malloc分配的内存空间是连续的吗
查看>>
Rsync服务及搭建备份服务器
查看>>