class Solution(object):
def maximalRectangle(self, matrix):
"""
:type matrix: List[List[str]]
:rtype: int
"""
max=0
res=[[0]*len(matrix[0]) for x in range(len(matrix))]
for i in range(len(matrix)):
res[i][0]=matrix[i][0]
if matrix[i][0]==1:
max=1
for j in range(len(matrix[0])):
res[0][j]=matrix[0][j]
if matrix[0][j]==1:
max=1
for i in range(1,len(matrix)):
for j in range(1,len(matrix[0])):
t=self.getMin(res[i][j-1],res[i-1][j-1],res[i-1][j])
print t,res[i][j]
res[i][j]=t+1
if res[i][j]>max:
max=res[i][j]
return max
def getMin(self,a,b,c):
d=min(a,b)
n=min(d,c)
return n
class Solution(object): def maximalRectangle(self, matrix): """ :type matrix: List[List[str]] :rtype: int """ max=0 t=[[0]*len(matrix[0]) for x in range(len(matrix))] print type(t[0][0]) for j in range(len(matrix[0])): t[0][j]=matrix[0][j] for i in range(1,len(matrix)): for j in range(len(matrix[0])): if matrix[i][j]==0: t[i][j]=0 else: t[i][j]=matrix[i][j]+t[i][j] return t