maximal-rectangle

来源:互联网 发布:外卖哪个软件便宜 编辑:程序博客网 时间:2024/06/05 23:16

求给出的二维数组里面矩阵全为1的最大矩阵。
Given a 2D binary matrix filled with 0’s and 1’s, find the largest rectangle containing all ones and return its area.借助求柱形图的最大范围。

public class Solution {    public int maximalRectangle(char[][] matrix) {        if(matrix.length<1) return 0;          int max=0;        for(int i=0;i<matrix.length;i++){            for(int j=0;j<matrix[i].length;j++){            if(matrix[i][j]=='1'){                        int mh=1;                        int m=1;                       for(int h=i;h<matrix.length;h++){                           if(matrix[h][j]!='1') break;                           int w,n=1;                           for(w=j+1;w<matrix[h].length;w++){                               if(matrix[h][w]!='1') break;                               n++;                           }                           if(h==i) mh=n;                           if(n<mh) mh=n;                           if(m*mh>max) max=m*mh;                           m++;                       }                    }                }            }        return max;    }}
0 0
原创粉丝点击