Python 程式,將行和列中為 0 的每個元素轉換為 0
假設我們有一個數字的二維矩陣,現在對於給定矩陣中的每個 0,將用 0 替換其所在行和列中的所有值,並返回最終矩陣。
因此,如果輸入類似於矩陣,則輸出將是矩陣,因為第 0、2 和 3 行包含 0,最終矩陣的這些行包含 0。類似地,第 0、1 和 2 列包含 0,最終矩陣的這些列包含 0。
為解決此問題,我們將按照以下步驟進行操作
n := row count, m := column count res := make a matrix of size n x m and fill with 0 transpose := transpose given matrix for each row i, do if 0 not in matrix[i], then for each column j in matrix, do if 0 not in transpose[j], then res[i, j] := matrix[i, j] return res
讓我們看看以下實現以更好地理解 −
示例
class Solution: def solve(self, matrix): n, m = len(matrix), len(matrix[0]) res = [[0 for __ in range(m)] for _ in range(n)] transpose = [list(row) for row in zip(*matrix)] for i in range(n): if 0 not in matrix[i]: for j in range(m): if 0 not in transpose[j]: res[i][j] = matrix[i][j] return res ob = Solution() matrix = [ [6, 0, 0, 6, 9], [4, 9, 9, 4, 8], [0, 8, 3, 4, 2], [9, 0, 7, 8, 3], [5, 2, 9, 6, 8] ] print(ob.solve(matrix))
輸入
matrix = [ [6, 0, 0, 6, 9], [4, 9, 9, 4, 8], [0, 8, 3, 4, 2], [9, 0, 7, 8, 3], [5, 2, 9, 6, 8] ]
輸出
[[0, 0, 0, 0, 0], [0, 0, 0, 4, 8], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 6, 8]]
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP