मान लीजिए कि हमारे पास क्रम m x n का एक बाइनरी मैट्रिक्स है, हमें मैट्रिक्स में विशेष पदों की संख्या ज्ञात करनी है। एक स्थिति (i,j) एक विशेष स्थिति होती है जब mat[i,j] =1 और पंक्ति i और कॉलम j में अन्य सभी तत्व 0 होते हैं।
तो, अगर इनपुट पसंद है
1 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 | 0 |
तब आउटपुट 3 होगा, यहाँ विशेष स्थितियाँ हैं (0, 0), (1,2) और (3,1)।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
विशेष:=0
-
मैं के लिए 0 से लेकर मैट्रिक्स की पंक्ति गणना तक, करें
-
यदि पंक्ति मैट्रिक्स में 1s की संख्या [i] 1 है, तो
-
numOfOne :=0
-
indexOfOne :=मैट्रिक्स में 1 की स्थिति[i]
-
j के लिए 0 से लेकर मैट्रिक्स के कॉलम आकार तक, करें
-
यदि मैट्रिक्स [j, indexOfOne] 1 के समान है, तो
-
numOfOne :=numOfOne + 1
-
-
अगर numOfOne> 1, तो
-
लूप से बाहर आएं
-
-
-
अगर numOfOne 1 के समान है, तो
-
विशेष:=विशेष + 1
-
-
-
-
विशेष वापसी
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(matrix): special = 0 for i in range(len(matrix)): if matrix[i].count(1) == 1: numOfOne = 0 indexOfOne = matrix[i].index(1) for j in range(len(matrix)): if matrix[j][indexOfOne] == 1: numOfOne += 1 if numOfOne > 1: break if numOfOne == 1: special += 1 return special matrix = [[1,0,0,0,0], [0,0,1,0,0], [0,0,0,1,1], [0,1,0,0,0]] print(solve(matrix))
इनपुट
[[1,0,0,0,0], [0,0,1,0,0], [0,0,0,1,1], [0,1,0,0,0]]
आउटपुट
3