子矩阵问题
问题描述
给定一个矩形区域,每一个位置上都是1或0,求该矩阵中每一个位置上都是1的最大子矩形区域中的1的个数。
代码部分(python3)
lines = []
try:
while(True):
line = input().split(' ')
lines.append(line)
except EOFError:
pass
m = len(lines)
n = len(lines[0])
max = 0
for i in range(m):
for j in range(n):
for p in range(i,m):
for q in range(j,n):
count = 0
break_flag = False
for a in range(i,p+1):
for b in range(j,q+1):
if lines[a][b] != '1':
break_flag = True
break
count+=1
if(a==p and b==q):
max = count if count>max else max
if break_flag == True:
break
if break_flag == True:
break
if break_flag == True:
break
print(max)
复杂度比较高,待改进