ধরুন একটি ২D ম্যাট্রিক্স আছে। প্রতিটি শূন্যের জন্য তার সারি ও কলামের সব মান শূন্যে রূপান্তর করুন এবং চূড়ান্ত ম্যাট্রিক্স ফেরত দিন।
ইনপুট: matrix → আউটপুট: matrix (০ম, ২য়, ৩য় সারি ০ ধারণ করে → সেসব সারি ০; ০ম, ১ম, ২য় কলাম ০ ধারণ করে → সেসব কলাম ০)।
সমাধান পদ্ধতি
n := row count, m := column count
res := n x m সাইজের ম্যাট্রিক্স ০ দিয়ে ফিল
transpose := দেওয়া ম্যাট্রিক্সের ট্রান্সপোজ
প্রতিটি রো i জন্য:
যদি 0 matrix[i]-এ না থাকে:
প্রতিটি কলাম j জন্য:
যদি 0 transpose[j]-এ না থাকে:
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]]