मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है; हमें मैट्रिक्स में निम्नलिखित नियमों का पालन करने वाले तत्वों की संख्या ज्ञात करनी है -
-
मैट्रिक्स [आर, सी] =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