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