在Python中计算给定二进制矩阵中平方子矩阵数量的程序
假设我们有一个二维二进制矩阵。我们必须找到矩阵中存在的方形子矩阵的总数,其中所有元素都是1。
所以,如果输入是这样的
那么输出将是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