在 Python 中找到具有重排的最大子矩阵的程序
假设我们有一个mxn二进制矩阵,我们可以按任意顺序重新排列矩阵的列。在执行一些重新排序任务后,我们必须找到矩阵中最大子矩阵的面积,其中子矩阵的每个元素都为1。
所以,如果输入是这样的
那么输出将是4,因为在列交换之后我们得到了像这样的矩阵
这里最大子矩阵是正方形大小,有四个1。
示例
让我们看看以下实现以获得更好的理解-
def solve(matrix):
row, col = len(matrix), len(matrix[0])
for j in range(col):
for i in range(1,row):
if matrix[i][j]:
matrix[i][j]+=matrix[i-1][j]
ans = 0
for i in range(row):
matrix[i].sort()
for j in range(col-1,-1,-1):
if matrix[i][j]==0:
break
ans = max(ans, (col-j)*matrix[i][j])
return ans
matrix = [[0,0,1],[1,1,1],[1,0,1]]
print(solve(matrix))输入
[[0,0,1],[1,1,1],[1,0,1]]输出结果
4
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话