Python程序:根据行列条件查找矩阵中元素的数量
假设我们有一个二元矩阵;我们必须找到满足以下规则的矩阵中元素的数量:
matrix[r, c] = 1
当 j 不等于 c 时,matrix[r, j] = 0,并且当 i 不等于 r 时,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
对于 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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP