LeetCode85 Maximal Rectangle java题解
来源:互联网 发布:王羽的大招笔记淘宝 编辑:程序博客网 时间:2024/06/15 11:46
public static int maximalRectangle(char[][] matrix) { int rowNum=matrix.length; if(rowNum==0) return 0; int columnNum=matrix[0].length; int[][] height=new int[rowNum][columnNum+1]; int maxarea=0; for(int i=0;i<rowNum;i++) { for(int j=0;j<columnNum;j++) { int k=i; height[i][j]=0; while(k>=0&&j<columnNum) { if(matrix[k][j]=='1') height[i][j]++; else break; k--; } } height[i][columnNum]=-1; } Stack<Integer> stack=new Stack<>(); for(int i=0;i<rowNum;i++) { for(int j=0;j<=columnNum;j++) { int a=height[i][j]; int b=stack.isEmpty()?-1:stack.peek(); if(stack.isEmpty()||height[i][j]>=height[i][stack.peek()]) stack.push(j); else {int tempPop=stack.pop();maxarea=Math.max(maxarea, height[i][tempPop]*(stack.isEmpty()?j:j-1-stack.peek()));j--; } } stack.clear(); } return maxarea; }
题目:
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and return its area.
也就是说,给一个只有0和1的2维矩阵,求其中1能够组成的最大四方形面积
解题:
这题可以看作是前面一题(LeetCode84)的拓展,前面一题中输入的是一个数组,数组每一个元素的值看作的矩形的高度,在这题中先对矩阵做一个处理,对矩阵的元素计算其高度,处理完之后得到一个每一个原矩阵元素的高度矩阵,把这个矩阵当作输入就和前面一题是类似了。
代码:
0 0
- LeetCode85 Maximal Rectangle java题解
- leetcode85 maximal rectangle
- LeetCode85. Maximal Rectangle
- LeetCode85. Maximal Rectangle
- leetcode85 85. Maximal Rectangle
- Leetcode85. Maximal Rectangle.
- LeetCode85 Maximal Rectangle
- LeetCode85——Maximal Rectangle
- LeetCode - Maximal Rectangle 题解
- [Leetcode] Maximal Rectangle (Java)
- Maximal Rectangle (Java)
- [LeetCode][Java] Maximal Rectangle
- Maximal Rectangle leetcode java
- maximal-rectangle Java code
- LeetCode 题解(100): Maximal Rectangle
- leetcode题解分析_85. Maximal Rectangle
- [leetcode]85. Maximal Rectangle(Java)
- Maximal Rectangle
- Hello Maven
- easyui
- repcached与mysql缓存测试
- 第14周实验作业:GUI编程初步
- LeetCode122:Best Time to Buy and Sell Stock II
- LeetCode85 Maximal Rectangle java题解
- repcached配置与简单测试
- SQL Server 2008 R2占用内存越来越大两种解决方法
- android 随笔,代码片段
- 读取xml生成lua测试代码
- Bitmap内存优化--使用BitmapFactory.options及SoftReference解决OutOfMemory问题
- jquery,get方式提交中文数据时乱码
- iOS高级开发, 开机启动, 无限后台运行, 监听进程
- 统计一句话中有多少个单词,并分行打印。