मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है; हमें मैट्रिक्स में निम्नलिखित नियमों का पालन करने वाले तत्वों की संख्या ज्ञात करनी है -
-
मैट्रिक्स [आर, सी] =1
-
मैट्रिक्स [आर, जे] =0 प्रत्येक जे के लिए जब जे सी के बराबर नहीं है और मैट्रिक्स [i, सी] =0 प्रत्येक i के लिए जब मैं आर के बराबर नहीं है।
तो, अगर इनपुट पसंद है
| 0 | 0 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
तो आउटपुट 3 होगा, क्योंकि हमारे पास सेल (0,2), (1,0) और (2,1) हैं जो मानदंडों को पूरा करते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
अगर मैट्रिक्स खाली है, तो
-
वापसी 0
-
-
पंक्ति :=मैट्रिक्स में सभी पंक्ति प्रविष्टियों के योग की सूची
-
col :=मैट्रिक्स में सभी कॉलम प्रविष्टियों के योग की एक सूची
-
मी :=मैट्रिक्स की पंक्ति गणना
-
n :=मैट्रिक्स की कॉलम संख्या
-
रेस :=0
-
r के लिए 0 से m -1 की सीमा में, करें
-
सी के लिए 0 से n -1 की सीमा में, करो
-
अगर मैट्रिक्स [आर, सी] 1 है और पंक्ति [आर] 1 है और कॉल [सी] भी 1 है, तो
-
रेस :=रेस + 1
-
-
-
-
रिटर्न रेस
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
def solve(matrix):
if not matrix:
return 0
row = [sum(r) for r in matrix]
col = [sum(c) for c in zip(*matrix)]
m, n = len(matrix), len(matrix[0])
res = 0
for r in range(m):
for c in range(n):
if matrix[r][c] == 1 and row[r] == 1 and col[c] == 1:
res += 1
return res
matrix = [
[0, 0, 1],
[1, 0, 0],
[0, 1, 0]
]
print(solve(matrix)) इनपुट
[[0, 0, 1],[1, 0, 0],[0, 1, 0]]
आउटपुट
3