使用 Python 查詢二進位制矩陣中特殊位置的數量的程式
假設我們有一個 m x n 階的二進位制矩陣,我們需要找到矩陣中特殊位置的數量。當 mat[i,j] = 1 且第 i 行和第 j 列中的所有其他元素都為 0 時,位置 (i,j) 就是一個特殊位置。
所以,如果輸入如下所示:
1 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 | 0 |
那麼輸出將是 3,這裡特殊位置是 (0, 0)、(1,2) 和 (3,1)。
為了解決這個問題,我們將遵循以下步驟:
special := 0
對於 i 從 0 到矩陣的行數,執行以下操作:
如果矩陣[i] 行中 1 的數量為 1,則:
numOfOne := 0
indexOfOne := 矩陣[i] 中 1 的位置
對於 j 從 0 到矩陣的列數,執行以下操作:
如果矩陣[j, indexOfOne] 等於 1,則:
numOfOne := numOfOne + 1
如果 numOfOne > 1,則:
退出迴圈
如果 numOfOne 等於 1,則:
special := special + 1
返回 special
示例(Python)
讓我們看看以下實現以獲得更好的理解:
def solve(matrix): special = 0 for i in range(len(matrix)): if matrix[i].count(1) == 1: numOfOne = 0 indexOfOne = matrix[i].index(1) for j in range(len(matrix)): if matrix[j][indexOfOne] == 1: numOfOne += 1 if numOfOne > 1: break if numOfOne == 1: special += 1 return special matrix = [[1,0,0,0,0], [0,0,1,0,0], [0,0,0,1,1], [0,1,0,0,0]] print(solve(matrix))
輸入
[[1,0,0,0,0], [0,0,1,0,0], [0,0,0,1,1], [0,1,0,0,0]]
輸出
3
廣告