मान लीजिए हमारे पास आकार N और M के दो ऐरे A और B हैं और हमारे पास एक N x M बाइनरी मैट्रिक्स भी है जहां 1 दर्शाता है कि मूल मैट्रिक्स में एक धनात्मक पूर्णांक था और 0 का अर्थ है कि वह स्थान मूल मैट्रिक्स में भी 0 रखता है। हमें मूल मैट्रिक्स उत्पन्न करना है ताकि A[i] आईवीं पंक्ति का सबसे बड़ा तत्व दर्शाए और B[j] जेवीं स्तंभ का सबसे बड़ा तत्व दर्शाए।
इसलिए, यदि इनपुट A = [4, 2, 3], B = [3, 1, 0, 0, 4, 0, 5] मैट्रिक्स है, तो आउटपुट मैट्रिक्स होगा।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
N := len(A)M := len(B)iको 0 सेN-1तक के लिए:jको 0 सेM-1तक के लिए:- यदि
mat[i][j] == 1, तोmin(A[i], B[j])प्रिंट करें। - अन्यथा, 0 प्रिंट करें।
- यदि
- नई लाइन प्रिंट करें।
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def print_original_mat(A, B, mat):
N = len(A)
M = len(B)
for i in range(N):
for j in range(M):
if mat[i][j] == 1:
print(min(A[i], B[j]), end=" ")
else:
print(0, end=" ")
print()
A = [4, 2, 3]
B = [3, 1, 0, 0, 4, 0, 5]
mat = [
[1, 0, 0, 0, 1, 0, 1],
[0, 0, 1, 0, 0, 1, 1],
[1, 1, 0, 1, 1, 0, 0]
]
print_original_mat(A, B, mat)
इनपुट
[4, 2, 3], [3, 1, 0, 0, 4, 0, 5], [[1,0,0,0,1,0,1], [0,0,1,0,0,1,1], [1,1,0,1,1,0,0]]
आउटपुट
3 0 0 0 4 0 4 0 0 0 0 0 0 2 3 1 0 0 3 0 0