मान लीजिए हमारे पास एक मैट्रिक्स है। हमें उन पूर्णांकों की कुल संख्या ढूंढनी है जिनका मान अपनी सारी और कॉलम दोनों में सबसे बड़ा है।
उदाहरण के लिए, यदि इनपुट है:
| 1 | 3 | 2 |
| 4 | 6 | 5 |
| 1 | 5 | 7 |
तो आउटपुट होगा 2 क्योंकि 6 और 7 मान्य हैं।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- mat := मैट्रिक्स
- r_maxes := mat की प्रत्येक सारी के अधिकतम तत्वों की सूची बनाएं
- c_maxes := mat के प्रत्येक कॉलम के अधिकतम तत्वों की सूची बनाएं
- a := एक नई सूची
- r के लिए 0 से सारी की संख्या - 1 तक की रेंज में:
- c के लिए 0 से कॉलम की संख्या - 1 तक की रेंज में:
- v := mat[r, c]
- यदि r_maxes[r] v है और c_maxes[c] v है, तो:
- v को a के अंत में डालें
- c के लिए 0 से कॉलम की संख्या - 1 तक की रेंज में:
- a का आकार वापस करें
उदाहरण कोड
class Solution:
def solve(self, matrix):
mat = matrix
trans_mat = list(zip(*matrix))
r_maxes = [max(row) for row in mat]
c_maxes = [max(t_row) for t_row in trans_mat]
a = []
for r in range(len(mat)):
for c in range(len(trans_mat)):
v = mat[r][c]
if (r_maxes[r], c_maxes[c]) == (v, v):
a.append(v)
return len(a)
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