题目:
分析:
对于这道题为了方便分析,我重新对输入数组进行了构造
构造了一个新数组,每个位置记录的是当前位置及向下的连续为1的个数
如 :
[4,0,3,0,0]
[3,0,2,2,2]
[2,1,1,1,1]
[1,0,0,1,0]
然后对这个数组进行遍历
当遇到不为0的位置时,向右遍历,并求最大矩形面积,直到遇到0;
代码:
class Solution {
public int maximalRectangle(char[][] matrix) {
if(matrix.length==0) return 0;
int maxS=0;
int n=matrix.length;
int m=matrix[0].length;
int [][]Matrix=new int[n][m];
//构造一个新数组
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(matrix[i][j]=='1'){
int temp=0;
int temp_i=i;