程序在python中查找给定矩阵中最大1的平方面积
假设我们有一个二进制矩阵,则必须在该给定矩阵中找到最大的1的平方。
所以,如果输入像
那么输出将为16。
为了解决这个问题,我们将遵循以下步骤-
res:=0
对于0到矩阵大小的范围内的i
res:=res和matrix[i,0]的最大值
对于范围从0到矩阵[0]大小的i,执行
res:=res和matrix[0,i]的最大值
对于范围在1到矩阵行数的i,执行
如果matrix[i,j]与1相同,则
res=res和matrix[i,j]的最大值
矩阵[i,j]=(矩阵[i-1,j],矩阵[i-1,j-1]和矩阵[i,j-1])的最小值+1
对于范围1到矩阵的列数的j,执行
返回res^2
让我们看下面的实现以更好地理解-
例
class Solution:
def solve(self, matrix):
res = 0
for i in range(len(matrix)):
res = max(res, matrix[i][0])
for i in range(len(matrix[0])):
res = max(res, matrix[0][i])
for i in range(1, len(matrix)):
for j in range(1, len(matrix[0])):
if matrix[i][j] == 1:
matrix[i][j] = min(matrix[i - 1][j], matrix[i - 1][j - 1], matrix[i][j - 1]) + 1
res = max(res, matrix[i][j])
return res * res
ob = Solution()matrix = [
[1, 0, 0, 0, 0, 1, 1],
[0, 0, 0, 0, 0, 1, 1],
[0, 1, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 0, 0]
]
print(ob.solve(matrix))输入值
matrix = [ [1, 0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 1, 1], [0, 1, 1, 1, 1, 0, 0], [0, 1, 1, 1, 1, 0, 0], [0, 1, 1, 1, 1, 0, 0], [0, 1, 1, 1, 1, 0, 0] ]
输出结果
16
热门推荐
10 周岁生日祝福语简短男孩
11 女儿升学宴祝福语简短
12 简短中秋祝福语朋友结婚
13 新年给妈妈简短祝福语
14 新婚抖音祝福语简短
15 考试祝福语简短给对象
16 2026祝福语简短创意牛
17 汤姆猫祝福语简短霸气
18 生日祝福语简短搞笑女儿