मान लीजिए हमारे पास संख्याओं का एक 2D मैट्रिक्स है, अब दिए गए मैट्रिक्स में प्रत्येक जीरो के लिए उसकी पंक्ति और कॉलम के सभी मानों को जीरो से बदलें, और अंतिम मैट्रिक्स लौटाएं।
एल्गोरिदम
n := पंक्ति गिनती, m := कॉलम गिनती
res := आकार n x m का मैट्रिक्स बनाएं और 0 से भरें
transpose := दिए गए मैट्रिक्स का ट्रांसपोज
प्रत्येक पंक्ति i के लिए, करें
अगर 0 matrix[i] में नहीं है, तो
प्रत्येक कॉलम j में matrix के लिए, करें
अगर 0 transpose[j] में नहीं है, तो
res[i, j] := matrix[i, j]
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]]