在Python中查找按行列条件遵循的矩阵元素个数的程序

在Python中查找按行列条件遵循的矩阵元素个数的程序

假设我们有一个二进制矩阵;我们必须找到符合以下规则的矩阵中元素的数量 −

  • matrix[r, c] = 1

  • 当j不等于c时,对于每个j,matrix[r, j] = 0,当i不等于r时,对于每个i,matrix[i, c] = 0。

因此,如果输入为

0 0 1
1 0 0
0 1 0

那么输出将是3,因为我们有符合条件的单元格(0,2),(1,0)和(2,1)。

为了解决这个问题,我们将按照以下步骤进行 −

  • 如果矩阵为空,则
    • 返回0
  • row := 矩阵中所有行条目总和的列表

  • col := 矩阵中所有列条目总和的列表

  • m := 矩阵的行数

  • n := 矩阵的列数

  • res := 0

  • for r in range 0 to m – 1, do

    • for c in range 0 to n – 1, do
      • if matrix[r, c] 为 1 并且 row[r] 为 1 并且 col[c] 也为 1,则

      • res := res + 1

  • 返回 res

示例

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

def solve(matrix):
   if not matrix:
      return 0

   row = [sum(r) for r in matrix]
   col = [sum(c) for c in zip(*matrix)]

   m, n = len(matrix), len(matrix[0])
   res = 0
   for r in range(m):
      for c in range(n):
         if matrix[r][c] == 1 and row[r] == 1 and col[c] == 1:
            res += 1
   return res

matrix = [
   [0, 0, 1],
   [1, 0, 0],
   [0, 1, 0]
]
print(solve(matrix))

输入

[[0, 0, 1],[1, 0, 0],[0, 1, 0]]

输出

3

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程