程序在python中查找带有1的平方子矩阵数
假设我们有一个二维二进制矩阵,我们必须找到所有1都存在的正方形子矩阵的总数。
所以,如果输入像
那么输出将为17,因为有12(1x1)平方,4(2x2)平方和1(3x3)平方。
为了解决这个问题,我们将遵循以下步骤-
res:=0
对于范围在0到矩阵行数的i,执行
如果i等于0或j等于0,则
否则,当matrix[i,j]与1相同时,
res:=res+矩阵[i,j]
矩阵[i,j]=(矩阵[i,j-1],矩阵[i-1,j]和矩阵[i-1,j-1])的最小值+1
res:=res+矩阵[i,j]
对于范围从0到矩阵的列数的j,执行
返回资源
让我们看下面的实现以更好地理解-
例
class Solution:
def solve(self, matrix):
res = 0
for i in range(len(matrix)):
for j in range(len(matrix[0])):
if i == 0 or j == 0:
res += matrix[i][j]
elif matrix[i][j] == 1:
matrix[i][j] = min(matrix[i][j - 1], matrix[i - 1][j], matrix[i - 1][j - 1]) + 1
res += matrix[i][j]
return res
ob = Solution()matrix = [
[1, 1, 1, 0],
[1, 1, 1, 0],
[1, 1, 1, 0],
[0, 0, 0, 0],
[1, 0, 1, 1]
]
print(ob.solve(matrix))输入值
matrix = [ [1, 1, 1, 0], [1, 1, 1, 0], [1, 1, 1, 0], [0, 0, 0, 0], [1, 0, 1, 1] ]
输出结果
17
热门推荐
4 天仓节祝福语简短
10 喜得孙子的祝福语简短
11 送给平辈生日祝福语简短
12 周末祝福语简短有内涵
13 3.8祝福语简短的词语
14 爸爸生日祝福语搞笑简短
15 巧克力情侣祝福语大全简短
16 结婚新娘妈妈祝福语简短
17 鼠年元旦生日祝福语简短
18 八一祝福语简短文字