समस्या विवरण
एक मैट्रिक्स दिया गया है, उन पूर्णांकों की कुल संख्या ज्ञात करें जिनका मान अपनी पंक्ति और अपने स्तंभ दोनों में अधिकतम है।
उदाहरण
मैट्रिक्स:
| 1 | 3 | 2 |
| 4 | 6 | 5 |
| 1 | 5 | 7 |
आउटपुट: 2 (6 और 7 अपनी-अपनी पंक्ति और स्तंभ में अधिकतम हैं)
एल्गोरिदम
- प्रत्येक पंक्ति का अधिकतम
r_maxesमें स्टोर करें - प्रत्येक स्तंभ का अधिकतम
c_maxesमें स्टोर करें (ट्रांसपोज़ करके) - प्रत्येक सेल
(r, c)के लिए:- यदि
mat[r][c] == r_maxes[r] == c_maxes[c], तो गिनती बढ़ाएं
- यदि
- कुल गिनती वापस करें
पायथन कार्यान्वयन
class Solution:
def solve(self, matrix):
mat = matrix
trans_mat = list(zip(*matrix))
r_maxes = [max(row) for row in mat]
c_maxes = [max(col) for col in trans_mat]
count = 0
for r in range(len(mat)):
for c in range(len(trans_mat)):
v = mat[r][c]
if r_maxes[r] == v and c_maxes[c] == v:
count += 1
return count
ob = Solution()
matrix = [[1, 3, 2], [4, 6, 5], [1, 5, 7]]
print(ob.solve(matrix))
इनपुट
[[1, 3, 2], [4, 6, 5], [1, 5, 7]]
आउटपुट
2