मान लीजिए हमारे पास 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) हैं।
हल करने के चरण
- special := 0
- i को 0 से मैट्रिक्स की पंक्ति संख्या तक के लिए:
- यदि मैट्रिक्स[i] पंक्ति में 1 की संख्या 1 है:
- numOfOne := 0
- indexOfOne := मैट्रिक्स[i] में 1 की स्थिति
- j को 0 से मैट्रिक्स के स्तंभ आकार तक के लिए:
- यदि matrix[j][indexOfOne] == 1, तो numOfOne++
- यदि numOfOne > 1, तो लूप से बाहर निकलें
- यदि numOfOne == 1, तो special++
- यदि मैट्रिक्स[i] पंक्ति में 1 की संख्या 1 है:
- special वापस करें
उदाहरण (Python)
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