在Python中计算给定二进制矩阵中平方子矩阵数量的程序

假设我们有一个二维二进制矩阵。我们必须找到矩阵中存在的方形子矩阵的总数,其中所有元素都是 1。

所以,如果输入是这样的

011
011

那么输出将是 5,因为有一个 (2 × 2) 方格和四个 (1 × 1) 方格

示例

让我们看看以下实现以获得更好的理解 -

def solve(mat):

   if mat == []:

      return 0

   c = 0

   for i in range(len(mat)):

      for j in range(len(mat[0])):

         if mat[i][j] == 1:

            if i == 0 or j == 0:

               c += 1

            else:

               temp = (min(mat[i - 1][j - 1], mat[i][j - 1], mat[i - 1][j]) + mat[i][j])

               c += temp

               mat[i][j] = temp

   return c

matrix = [

   [0, 1, 1],

   [0, 1, 1]

]

print(solve(matrix))

输入

[[2, 6],[3, 4],[4, 7],[5, 5]]
输出结果
5

以上是 在Python中计算给定二进制矩阵中平方子矩阵数量的程序 的全部内容, 来源链接: utcz.com/z/341270.html

回到顶部