मान लीजिए हमारे पास एक मैट्रिक्स है, हमें मैट्रिक्स के प्रत्येक कॉलम को आरोही क्रम में सॉर्ट करना है।
यदि इनपुट इस तरह है:
| 11 | 21 | 31 |
| 6 | 6 | 4 |
| 1 | 11 | 8 |
तो आउटपुट होगा:
| 1 | 6 | 4 |
| 6 | 11 | 8 |
| 11 | 21 | 31 |
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- R := मैट्रिक्स की पंक्ति संख्या, C := मैट्रिक्स की कॉलम संख्या
- res := दिए गए मैट्रिक्स के समान आकार का मैट्रिक्स, 0 से भरा हुआ
- col को 0 से C तक के लिए, करें:
- values := मैट्रिक्स[col] के तत्वों को एक वेक्टर के रूप में लें
- row को 0 से R तक के लिए, करें:
- res[row, col] := values से अंतिम तत्व हटाएं
- res लौटाएं
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution:
def solve(self, matrix):
R = len(matrix)
C = len(matrix[0])
res = [[0] * C for _ in range(R)]
for col in range(C):
values = [r[col] for r in matrix]
values.sort(reverse=True)
for row in range(R):
res[row][col] = values.pop()
return res
ob = Solution()
matrix = [[11, 21, 31],[6, 6, 4],[1, 11, 8]]
print(ob.solve(matrix))
इनपुट
[[11, 21, 31], [6, 6, 4], [1, 11, 8]]
आउटपुट
[[1, 6, 4],[6, 11, 8],[11, 21, 31]]