Python 中按照行列标准查找矩阵中元素数量的程序

pythonserver side programmingprogramming更新于 2025/12/18 6:36:17

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

  • matrix[r, c] = 1

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

因此,如果输入如下

001
100
010

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

要解决这个问题,我们将遵循以下步骤 −

  • 如果矩阵为空,则

    • 返回 0

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

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

  • m := 矩阵的行数

  • n := 矩阵的列数

  • res := 0

  • 对于 r 在 0 到 m - 1 的范围内,执行

    • 对于 c 在 0 到 n 的范围内- 1,执行

      • 如果 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

相关文章


有用资源