在Python中通过列重新排列查找最大子矩阵面积的程序
假设我们有一个二元矩阵。我们可以先根据需要多次重新排列列,然后找到返回仅包含1的最大子矩阵的面积。
所以,如果输入是这样的
那么输出将是4,因为我们可以安排就像-
示例
让我们看看以下实现以获得更好的理解-
def solve(matrix):
n, m = len(matrix), len(matrix[0])
ans = 0
for i in range(1, n) :
for j in range(m) :
if matrix[i][j] :
matrix[i][j] += matrix[i-1][j]
for row in matrix :
row.sort()
for j in range(m-1, -1, -1):
ans = max(ans, row[j] *(m - j))
return ans
matrix = [
[1, 0, 0],
[1, 1, 1],
[1, 0, 1]
]
print(solve(matrix))输入
[ [1, 0, 0], [1, 1, 1], [1, 0, 1] ]输出结果
4
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短